From fa82824a598445a4fbe259e216eab1e53697160b Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 12 Mar 2016 09:52:16 +0000 Subject: [PATCH] Reducing the indentation by short-circuiting a loop. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5727 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 1 + src/rcfile.c | 58 ++++++++++++++++++++++++++-------------------------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index e25e1a4f..c7d01e1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ just once, in a single place. And unnest two 'if's. * src/rcfile.c (parse_one_include, parse_includes): New names for these functions, to be more distinguishable. + * src/rcfile.c (parse_colors): Reduce the indentation. 2016-03-11 Benno Schulenberg * src/browser.c (do_browser): Fix compilation when configured with diff --git a/src/rcfile.c b/src/rcfile.c index c3eeccb1..4e433865 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -718,37 +718,37 @@ void parse_colors(char *ptr, bool icase) } else cancelled = TRUE; - if (expectend) { - if (ptr == NULL || strncasecmp(ptr, "end=", 4) != 0) { - rcfile_error( - N_("\"start=\" requires a corresponding \"end=\"")); - return; - } - ptr += 4; - if (*ptr != '"') { - rcfile_error( - N_("Regex strings must begin and end with a \" character")); - continue; - } + if (!expectend) + continue; - fgstr = ++ptr; - ptr = parse_next_regex(ptr); - if (ptr == NULL) - break; - - /* If the start regex was invalid, skip past the end regex - * to stay in sync. */ - if (cancelled) - continue; - - /* If it's valid, save the ending regex string. */ - if (nregcomp(fgstr, icase ? REG_ICASE : 0)) - newcolor->end_regex = mallocstrcpy(NULL, fgstr); - - /* Lame way to skip another static counter. */ - newcolor->id = live_syntax->nmultis; - live_syntax->nmultis++; + if (ptr == NULL || strncasecmp(ptr, "end=", 4) != 0) { + rcfile_error(N_("\"start=\" requires a corresponding \"end=\"")); + return; } + + ptr += 4; + if (*ptr != '"') { + rcfile_error(N_("Regex strings must begin and end with a \" character")); + continue; + } + + fgstr = ++ptr; + ptr = parse_next_regex(ptr); + if (ptr == NULL) + break; + + /* If the start regex was invalid, skip past the end regex + * to stay in sync. */ + if (cancelled) + continue; + + /* If it's valid, save the ending regex string. */ + if (nregcomp(fgstr, icase ? REG_ICASE : 0)) + newcolor->end_regex = mallocstrcpy(NULL, fgstr); + + /* Lame way to skip another static counter. */ + newcolor->id = live_syntax->nmultis; + live_syntax->nmultis++; } }