nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 63d59656d309162f382dab9a4d203ed054af9394
parent f72e16502e10ee8a7f04aecbddc2fbc066d56a9f
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sat, 12 Mar 2016 11:15:12 +0000

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

Diffstat:
MChangeLog | 2++
Msrc/rcfile.c | 13+++++++------
2 files changed, 9 insertions(+), 6 deletions(-)

diff --git 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 <bensberg@justemail.net> * src/browser.c (do_browser): Fix compilation when configured with diff --git 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); }