/* Other non boolean parameters */
const char *fake_ancestor;
+ const char *patch_input_file;
int line_termination;
unsigned int p_context;
};
} ws_ignore_action = ignore_ws_none;
-static const char *patch_input_file;
static struct strbuf root = STRBUF_INIT;
static void parse_whitespace_option(const char *option)
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;
err = whitespace_error_string(result);
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);
}
-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);
- record_ws_error(result, line + 1, len - 2, state_linenr);
+ record_ws_error(state, result, line + 1, len - 2, state_linenr);
}
/*
trailing++;
if (!state->apply_in_reverse &&
ws_error_action == correct_ws_error)
- check_whitespace(line, len, patch->ws_rule);
+ check_whitespace(state, line, len, patch->ws_rule);
break;
case '-':
if (state->apply_in_reverse &&
ws_error_action != nowarn_ws_error)
- check_whitespace(line, len, patch->ws_rule);
+ check_whitespace(state, line, len, patch->ws_rule);
deleted++;
oldlines--;
trailing = 0;
case '+':
if (!state->apply_in_reverse &&
ws_error_action != nowarn_ws_error)
- check_whitespace(line, len, patch->ws_rule);
+ check_whitespace(state, line, len, patch->ws_rule);
added++;
newlines--;
trailing = 0;
preimage.nr + applied_pos >= img->nr &&
(ws_rule & WS_BLANK_AT_EOF) &&
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);
if (ws_error_action == correct_ws_error) {
while (new_blank_lines_at_end--)
struct patch *list = NULL, **listp = &list;
int skipped_patch = 0;
- patch_input_file = filename;
+ state->patch_input_file = filename;
read_patch_file(&buf, fd);
offset = 0;
while (offset < buf.len) {