Skip to content

Commit 26d024e

Browse files
pcloudsgitster
authored andcommitted
ws.c: remove implicit dependency on the_index
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent dcf4286 commit 26d024e

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

apply.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2131,10 +2131,12 @@ static int parse_chunk(struct apply_state *state, char *buffer, unsigned long si
21312131

21322132
if (!use_patch(state, patch))
21332133
patch->ws_rule = 0;
2134+
else if (patch->new_name)
2135+
patch->ws_rule = whitespace_rule(state->repo->index,
2136+
patch->new_name);
21342137
else
2135-
patch->ws_rule = whitespace_rule(patch->new_name
2136-
? patch->new_name
2137-
: patch->old_name);
2138+
patch->ws_rule = whitespace_rule(state->repo->index,
2139+
patch->old_name);
21382140

21392141
patchsize = parse_single_patch(state,
21402142
buffer + offset + hdrsize,

cache.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1694,7 +1694,7 @@ void shift_tree_by(const struct object_id *, const struct object_id *, struct ob
16941694
/* All WS_* -- when extended, adapt diff.c emit_symbol */
16951695
#define WS_RULE_MASK 07777
16961696
extern unsigned whitespace_rule_cfg;
1697-
extern unsigned whitespace_rule(const char *);
1697+
extern unsigned whitespace_rule(struct index_state *, const char *);
16981698
extern unsigned parse_whitespace_rule(const char *);
16991699
extern unsigned ws_check(const char *line, int len, unsigned ws_rule);
17001700
extern void ws_check_emit(const char *line, int len, unsigned ws_rule, FILE *stream, const char *set, const char *reset, const char *ws);

diff.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,7 +1705,7 @@ static void emit_rewrite_diff(const char *name_a,
17051705

17061706
memset(&ecbdata, 0, sizeof(ecbdata));
17071707
ecbdata.color_diff = want_color(o->use_color);
1708-
ecbdata.ws_rule = whitespace_rule(name_b);
1708+
ecbdata.ws_rule = whitespace_rule(o->repo->index, name_b);
17091709
ecbdata.opt = o;
17101710
if (ecbdata.ws_rule & WS_BLANK_AT_EOF) {
17111711
mmfile_t mf1, mf2;
@@ -3480,7 +3480,7 @@ static void builtin_diff(const char *name_a,
34803480
lbl[0] = NULL;
34813481
ecbdata.label_path = lbl;
34823482
ecbdata.color_diff = want_color(o->use_color);
3483-
ecbdata.ws_rule = whitespace_rule(name_b);
3483+
ecbdata.ws_rule = whitespace_rule(o->repo->index, name_b);
34843484
if (ecbdata.ws_rule & WS_BLANK_AT_EOF)
34853485
check_blank_at_eof(&mf1, &mf2, &ecbdata);
34863486
ecbdata.opt = o;
@@ -3640,7 +3640,7 @@ static void builtin_checkdiff(const char *name_a, const char *name_b,
36403640
data.filename = name_b ? name_b : name_a;
36413641
data.lineno = 0;
36423642
data.o = o;
3643-
data.ws_rule = whitespace_rule(attr_path);
3643+
data.ws_rule = whitespace_rule(o->repo->index, attr_path);
36443644
data.conflict_marker_size = ll_merge_marker_size(o->repo->index, attr_path);
36453645

36463646
if (fill_mmfile(o->repo, &mf1, one) < 0 ||

ws.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
*
44
* Copyright (c) 2007 Junio C Hamano
55
*/
6-
76
#include "cache.h"
87
#include "attr.h"
98

@@ -71,14 +70,14 @@ unsigned parse_whitespace_rule(const char *string)
7170
return rule;
7271
}
7372

74-
unsigned whitespace_rule(const char *pathname)
73+
unsigned whitespace_rule(struct index_state *istate, const char *pathname)
7574
{
7675
static struct attr_check *attr_whitespace_rule;
7776

7877
if (!attr_whitespace_rule)
7978
attr_whitespace_rule = attr_check_initl("whitespace", NULL);
8079

81-
if (!git_check_attr(&the_index, pathname, attr_whitespace_rule)) {
80+
if (!git_check_attr(istate, pathname, attr_whitespace_rule)) {
8281
const char *value;
8382

8483
value = attr_whitespace_rule->items[0].value;

0 commit comments

Comments
 (0)