@@ -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-
36963696static 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