nano

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

commit 68d94a0c74409fb795e382b41e40165bb96cb3d6
parent 07f71e6c1a5d72f6c31f6be3e2b4b694a8a13fa7
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sun, 28 Feb 2016 17:16:39 +0000

Rearranging a few things in my style.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5695 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 1+
Msrc/rcfile.c | 28++++++++++++++--------------
2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -7,6 +7,7 @@ * 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. + * src/rcfile.c (grab_and_store): Rearrange things in my style. 2016-02-26 Benno Schulenberg <bensberg@justemail.net> * doc/man/nanorc.5, doc/texinfo/nano.texi, doc/syntax/nanorc.nanorc, diff --git a/src/rcfile.c b/src/rcfile.c @@ -879,7 +879,7 @@ void grab_and_store(char *ptr, const char *kind, regexlisttype **storage) while (lastthing != NULL && lastthing->next != NULL) lastthing = lastthing->next; - /* Now load the regexes into their part of the struct. */ + /* Now gather any valid regexes and add them to the linked list. */ while (*ptr != '\0') { const char *regexstring; regexlisttype *newthing; @@ -895,22 +895,22 @@ void grab_and_store(char *ptr, const char *kind, regexlisttype **storage) if (ptr == NULL) return; - newthing = (regexlisttype *)nmalloc(sizeof(regexlisttype)); + /* If the regex string is malformed, skip it. */ + if (nregcomp(regexstring, REG_NOSUB) != 0) + continue; - /* Save the regex string if it's valid. */ - if (nregcomp(regexstring, REG_NOSUB)) { - newthing->full_regex = mallocstrcpy(NULL, regexstring); - newthing->rgx = NULL; + /* Copy the regex into a struct, and hook this in at the end. */ + newthing = (regexlisttype *)nmalloc(sizeof(regexlisttype)); + newthing->full_regex = mallocstrcpy(NULL, regexstring); + newthing->rgx = NULL; + newthing->next = NULL; - if (lastthing == NULL) - *storage = newthing; - else - lastthing->next = newthing; + if (lastthing == NULL) + *storage = newthing; + else + lastthing->next = newthing; - lastthing = newthing; - lastthing->next = NULL; - } else - free(newthing); + lastthing = newthing; } }