To libify the apply functionality the 'squelch_whitespace_errors' variable 
should
not be static and global to the file. Let's move it into
'struct apply_state'.

Reviewed-by: Stefan Beller <sbel...@google.com>
Signed-off-by: Christian Couder <chrisc...@tuxfamily.org>
---
 builtin/apply.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/builtin/apply.c b/builtin/apply.c
index 523ed74..619b8fb 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -63,6 +63,7 @@ struct apply_state {
        /* These control whitespace errors */
        const char *whitespace_option;
        int whitespace_error;
+       int squelch_whitespace_errors;
 };
 
 static int newfd = -1;
@@ -78,7 +79,6 @@ static enum ws_error_action {
        die_on_ws_error,
        correct_ws_error
 } ws_error_action = warn_on_ws_error;
-static int squelch_whitespace_errors = 5;
 static int applied_after_fixing_ws;
 
 static enum ws_ignore {
@@ -87,7 +87,7 @@ static enum ws_ignore {
 } ws_ignore_action = ignore_ws_none;
 
 
-static void parse_whitespace_option(const char *option)
+static void parse_whitespace_option(struct apply_state *state, const char 
*option)
 {
        if (!option) {
                ws_error_action = warn_on_ws_error;
@@ -107,7 +107,7 @@ static void parse_whitespace_option(const char *option)
        }
        if (!strcmp(option, "error-all")) {
                ws_error_action = die_on_ws_error;
-               squelch_whitespace_errors = 0;
+               state->squelch_whitespace_errors = 0;
                return;
        }
        if (!strcmp(option, "strip") || !strcmp(option, "fix")) {
@@ -1599,8 +1599,8 @@ static void record_ws_error(struct apply_state *state,
                return;
 
        state->whitespace_error++;
-       if (squelch_whitespace_errors &&
-           squelch_whitespace_errors < state->whitespace_error)
+       if (state->squelch_whitespace_errors &&
+           state->squelch_whitespace_errors < state->whitespace_error)
                return;
 
        err = whitespace_error_string(result);
@@ -4620,9 +4620,8 @@ static int option_parse_whitespace(const struct option 
*opt,
                                   const char *arg, int unset)
 {
        struct apply_state *state = opt->value;
-
        state->whitespace_option = arg;
-       parse_whitespace_option(arg);
+       parse_whitespace_option(state, arg);
        return 0;
 }
 
@@ -4645,11 +4644,12 @@ static void init_apply_state(struct apply_state *state, 
const char *prefix)
        state->line_termination = '\n';
        state->p_value = 1;
        state->p_context = UINT_MAX;
+       state->squelch_whitespace_errors = 5;
        strbuf_init(&state->root, 0);
 
        git_apply_config();
        if (apply_default_whitespace)
-               parse_whitespace_option(apply_default_whitespace);
+               parse_whitespace_option(state, apply_default_whitespace);
        if (apply_default_ignorewhitespace)
                parse_ignorewhitespace_option(apply_default_ignorewhitespace);
 }
@@ -4792,10 +4792,10 @@ int cmd_apply(int argc, const char **argv, const char 
*prefix)
        if (read_stdin)
                errs |= apply_patch(&state, 0, "<stdin>", options);
        if (state.whitespace_error) {
-               if (squelch_whitespace_errors &&
-                   squelch_whitespace_errors < state.whitespace_error) {
+               if (state.squelch_whitespace_errors &&
+                   state.squelch_whitespace_errors < state.whitespace_error) {
                        int squelched =
-                               state.whitespace_error - 
squelch_whitespace_errors;
+                               state.whitespace_error - 
state.squelch_whitespace_errors;
                        warning(Q_("squelched %d whitespace error",
                                   "squelched %d whitespace errors",
                                   squelched),
-- 
2.8.3.443.gaeee61e

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to