From 07f71e6c1a5d72f6c31f6be3e2b4b694a8a13fa7 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sun, 28 Feb 2016 16:36:23 +0000 Subject: [PATCH] Not dropping regexes that were gathered earlier. This fixes Savannah bug #47285. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5694 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 2 ++ src/rcfile.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ae6b507d..dd13ca30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ Use the now correct parsing of header regexes also for parsing magic regexes. This fixes Savannah bug #47292 and saves 50 lines of code. * src/rcfile.c (grab_and_store): Rename a variable and densify. + * src/rcfile.c (grab_and_store): Do not drop regexes that were + gathered earlier. This fixes Savannah bug #47285. 2016-02-26 Benno Schulenberg * doc/man/nanorc.5, doc/texinfo/nano.texi, doc/syntax/nanorc.nanorc, diff --git a/src/rcfile.c b/src/rcfile.c index 073615e5..fd747c60 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -860,7 +860,7 @@ bool parse_color_names(char *combostr, short *fg, short *bg, bool *bright) * by ptr, and store them quoteless in the passed storage place. */ void grab_and_store(char *ptr, const char *kind, regexlisttype **storage) { - regexlisttype *lastthing = NULL; + regexlisttype *lastthing; if (syntaxes == NULL) { rcfile_error( @@ -873,6 +873,12 @@ void grab_and_store(char *ptr, const char *kind, regexlisttype **storage) return; } + lastthing = *storage; + + /* If there was an earlier command, go to the last of those regexes. */ + while (lastthing != NULL && lastthing->next != NULL) + lastthing = lastthing->next; + /* Now load the regexes into their part of the struct. */ while (*ptr != '\0') { const char *regexstring; -- 2.39.5