builtin/apply: move 'patch_input_file' global into 'struct apply_state'
To libify the apply functionality the 'patch_input_file' variable should not be static and global to the file. Let's move it into 'struct apply_state'. Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
574f5a59d8
commit
b802355863
@ -49,6 +49,7 @@ struct apply_state {
|
|||||||
|
|
||||||
/* Other non boolean parameters */
|
/* Other non boolean parameters */
|
||||||
const char *fake_ancestor;
|
const char *fake_ancestor;
|
||||||
|
const char *patch_input_file;
|
||||||
int line_termination;
|
int line_termination;
|
||||||
unsigned int p_context;
|
unsigned int p_context;
|
||||||
};
|
};
|
||||||
@ -79,7 +80,6 @@ static enum ws_ignore {
|
|||||||
} ws_ignore_action = ignore_ws_none;
|
} ws_ignore_action = ignore_ws_none;
|
||||||
|
|
||||||
|
|
||||||
static const char *patch_input_file;
|
|
||||||
static struct strbuf root = STRBUF_INIT;
|
static struct strbuf root = STRBUF_INIT;
|
||||||
|
|
||||||
static void parse_whitespace_option(const char *option)
|
static void parse_whitespace_option(const char *option)
|
||||||
@ -1525,7 +1525,11 @@ static int find_header(struct apply_state *state,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void record_ws_error(unsigned result, const char *line, int len, int linenr)
|
static void record_ws_error(struct apply_state *state,
|
||||||
|
unsigned result,
|
||||||
|
const char *line,
|
||||||
|
int len,
|
||||||
|
int linenr)
|
||||||
{
|
{
|
||||||
char *err;
|
char *err;
|
||||||
|
|
||||||
@ -1539,15 +1543,18 @@ static void record_ws_error(unsigned result, const char *line, int len, int line
|
|||||||
|
|
||||||
err = whitespace_error_string(result);
|
err = whitespace_error_string(result);
|
||||||
fprintf(stderr, "%s:%d: %s.\n%.*s\n",
|
fprintf(stderr, "%s:%d: %s.\n%.*s\n",
|
||||||
patch_input_file, linenr, err, len, line);
|
state->patch_input_file, linenr, err, len, line);
|
||||||
free(err);
|
free(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_whitespace(const char *line, int len, unsigned ws_rule)
|
static void check_whitespace(struct apply_state *state,
|
||||||
|
const char *line,
|
||||||
|
int len,
|
||||||
|
unsigned ws_rule)
|
||||||
{
|
{
|
||||||
unsigned result = ws_check(line + 1, len - 1, ws_rule);
|
unsigned result = ws_check(line + 1, len - 1, ws_rule);
|
||||||
|
|
||||||
record_ws_error(result, line + 1, len - 2, state_linenr);
|
record_ws_error(state, result, line + 1, len - 2, state_linenr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1602,12 +1609,12 @@ static int parse_fragment(struct apply_state *state,
|
|||||||
trailing++;
|
trailing++;
|
||||||
if (!state->apply_in_reverse &&
|
if (!state->apply_in_reverse &&
|
||||||
ws_error_action == correct_ws_error)
|
ws_error_action == correct_ws_error)
|
||||||
check_whitespace(line, len, patch->ws_rule);
|
check_whitespace(state, line, len, patch->ws_rule);
|
||||||
break;
|
break;
|
||||||
case '-':
|
case '-':
|
||||||
if (state->apply_in_reverse &&
|
if (state->apply_in_reverse &&
|
||||||
ws_error_action != nowarn_ws_error)
|
ws_error_action != nowarn_ws_error)
|
||||||
check_whitespace(line, len, patch->ws_rule);
|
check_whitespace(state, line, len, patch->ws_rule);
|
||||||
deleted++;
|
deleted++;
|
||||||
oldlines--;
|
oldlines--;
|
||||||
trailing = 0;
|
trailing = 0;
|
||||||
@ -1615,7 +1622,7 @@ static int parse_fragment(struct apply_state *state,
|
|||||||
case '+':
|
case '+':
|
||||||
if (!state->apply_in_reverse &&
|
if (!state->apply_in_reverse &&
|
||||||
ws_error_action != nowarn_ws_error)
|
ws_error_action != nowarn_ws_error)
|
||||||
check_whitespace(line, len, patch->ws_rule);
|
check_whitespace(state, line, len, patch->ws_rule);
|
||||||
added++;
|
added++;
|
||||||
newlines--;
|
newlines--;
|
||||||
trailing = 0;
|
trailing = 0;
|
||||||
@ -2904,7 +2911,7 @@ static int apply_one_fragment(struct apply_state *state,
|
|||||||
preimage.nr + applied_pos >= img->nr &&
|
preimage.nr + applied_pos >= img->nr &&
|
||||||
(ws_rule & WS_BLANK_AT_EOF) &&
|
(ws_rule & WS_BLANK_AT_EOF) &&
|
||||||
ws_error_action != nowarn_ws_error) {
|
ws_error_action != nowarn_ws_error) {
|
||||||
record_ws_error(WS_BLANK_AT_EOF, "+", 1,
|
record_ws_error(state, WS_BLANK_AT_EOF, "+", 1,
|
||||||
found_new_blank_lines_at_end);
|
found_new_blank_lines_at_end);
|
||||||
if (ws_error_action == correct_ws_error) {
|
if (ws_error_action == correct_ws_error) {
|
||||||
while (new_blank_lines_at_end--)
|
while (new_blank_lines_at_end--)
|
||||||
@ -4427,7 +4434,7 @@ static int apply_patch(struct apply_state *state,
|
|||||||
struct patch *list = NULL, **listp = &list;
|
struct patch *list = NULL, **listp = &list;
|
||||||
int skipped_patch = 0;
|
int skipped_patch = 0;
|
||||||
|
|
||||||
patch_input_file = filename;
|
state->patch_input_file = filename;
|
||||||
read_patch_file(&buf, fd);
|
read_patch_file(&buf, fd);
|
||||||
offset = 0;
|
offset = 0;
|
||||||
while (offset < buf.len) {
|
while (offset < buf.len) {
|
||||||
|
Loading…
Reference in New Issue
Block a user