* 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,
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;
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;
}
}