Skip to content

Commit 0b4b42e

Browse files
committed
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>
1 parent 077965f commit 0b4b42e

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

diff.c

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,43 @@ long parse_algorithm_value(const char *value)
163163
return -1;
164164
}
165165

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+
166203
/*
167204
* These are to give UI layer defaults.
168205
* The core-level commands such as git-diff-files should
@@ -3656,43 +3693,6 @@ static void enable_patch_output(int *fmt) {
36563693
*fmt |= DIFF_FORMAT_PATCH;
36573694
}
36583695

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-
36963696
static int parse_ws_error_highlight_opt(struct diff_options *opt, const char *arg)
36973697
{
36983698
int val = parse_ws_error_highlight(arg);

0 commit comments

Comments
 (0)