diff.c: move ws-error-highlight parsing helpers up
These need to be usable from git_diff_ui_config() code to help parsing a configuration variable, so move them up. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Oct 4, 2016 at 15:09 UTC
0b4b42e7fe1b507fb387c18d9a2748768359bf5d
1 file changed
+37
-37
diff.c
+37
-37
@@ -163,6 +163,43 @@ long parse_algorithm_value(const char *value)
163
return -1;
164
}
165
166
+static int parse_one_token(const char **arg, const char *token)
167
+{
168
+ const char *rest;
169
+ if (skip_prefix(*arg, token, &rest) && (!*rest || *rest == ',')) {
170
+ *arg = rest;
171
+ return 1;
172
+ }
173
+ return 0;
174
+}
175
+
176
+static int parse_ws_error_highlight(const char *arg)
177
+{
178
+ const char *orig_arg = arg;
179
+ unsigned val = 0;
180
+
181
+ while (*arg) {
182
+ if (parse_one_token(&arg, "none"))
183
+ val = 0;
184
+ else if (parse_one_token(&arg, "default"))
185
+ val = WSEH_NEW;
186
+ else if (parse_one_token(&arg, "all"))
187
+ val = WSEH_NEW | WSEH_OLD | WSEH_CONTEXT;
188
+ else if (parse_one_token(&arg, "new"))
189
+ val |= WSEH_NEW;
190
+ else if (parse_one_token(&arg, "old"))
191
+ val |= WSEH_OLD;
192
+ else if (parse_one_token(&arg, "context"))
193
+ val |= WSEH_CONTEXT;
194
+ else {
195
+ return -1 - (int)(arg - orig_arg);
196
+ }
197
+ if (*arg)
198
+ arg++;
199
+ }
200
+ return val;
201
+}
202
+
203
/*
204
* These are to give UI layer defaults.
205
* The core-level commands such as git-diff-files should
@@ -3656,43 +3693,6 @@ static void enable_patch_output(int *fmt) {
3693
*fmt |= DIFF_FORMAT_PATCH;
3694
}
3695
3659
-static int parse_one_token(const char **arg, const char *token)
3660
-{
3661
- const char *rest;
3662
- if (skip_prefix(*arg, token, &rest) && (!*rest || *rest == ',')) {
3663
- *arg = rest;
3664
- return 1;
3665
- }
3666
- return 0;
3667
-}
3668
-
3669
-static int parse_ws_error_highlight(const char *arg)
3670
-{
3671
- const char *orig_arg = arg;
3672
- unsigned val = 0;
3673
-
3674
- while (*arg) {
3675
- if (parse_one_token(&arg, "none"))
3676
- val = 0;
3677
- else if (parse_one_token(&arg, "default"))
3678
- val = WSEH_NEW;
3679
- else if (parse_one_token(&arg, "all"))
3680
- val = WSEH_NEW | WSEH_OLD | WSEH_CONTEXT;
3681
- else if (parse_one_token(&arg, "new"))
3682
- val |= WSEH_NEW;
3683
- else if (parse_one_token(&arg, "old"))
3684
- val |= WSEH_OLD;
3685
- else if (parse_one_token(&arg, "context"))
3686
- val |= WSEH_CONTEXT;
3687
- else {
3688
- return -1 - (int)(arg - orig_arg);
3689
- }
3690
- if (*arg)
3691
- arg++;
3692
- }
3693
- return val;
3694
-}
3695
-
3696
static int parse_ws_error_highlight_opt(struct diff_options *opt, const char *arg)
3697
{
3698
int val = parse_ws_error_highlight(arg);