From: Benno Schulenberg Date: Sat, 12 Mar 2016 11:15:12 +0000 (+0000) Subject: Refinding the tail of the colors list only when extending, X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=63d59656d309162f382dab9a4d203ed054af9394;p=nano.git Refinding the tail of the colors list only when extending, not for every added color, thus saving some 15 microseconds. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5729 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index 67fc84ba..4a581eae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ these functions, to be more distinguishable. * src/rcfile.c (parse_colors): Reduce the indentation. * src/rcfile.c (parse_colors): Rename a variable. + * src/rcfile.c (parse_colors, parse_rcfile): Refind the tail of + the colors list only when extending, not for every added color. 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 e1f1a27e..26bd0fea 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -705,13 +705,8 @@ void parse_colors(char *ptr, bool icase) #endif if (endcolor == NULL) live_syntax->color = newcolor; - else { - /* Need to recompute endcolor now so we can extend - * colors to syntaxes. */ - for (endcolor = live_syntax->color; endcolor->next != NULL;) - endcolor = endcolor->next; + else endcolor->next = newcolor; - } endcolor = newcolor; } @@ -963,6 +958,12 @@ void parse_rcfile(FILE *rcstream live_syntax = sint; opensyntax = TRUE; + /* Refind the tail of the color list for this syntax. */ + endcolor = sint->color; + if (endcolor != NULL) + while (endcolor->next != NULL) + endcolor = endcolor->next; + keyword = ptr; ptr = parse_next_word(ptr); }