nano

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

commit 818a39cfb977dfc4f2050a3cf042d253c65e2700
parent f4f995455624835da43a9590fcaf97d2696e51f9
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Mon, 22 Feb 2016 09:34:33 +0000

Condensing some code by factoring out a repetition.


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

Diffstat:
MChangeLog | 1+
Msrc/global.c | 39+++++++++++++++++----------------------
2 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,5 +1,6 @@ 2016-02-22 Benno Schulenberg <bensberg@justemail.net> * src/nano.c (free_openfilestruct): Elide this function. + * scr/global.c (thanks_for_all_the_fish, free_list_item): Condense. 2016-02-21 Benno Schulenberg <bensberg@justemail.net> * src/files.c (input_tab): If the first Tab added the part that all diff --git a/src/global.c b/src/global.c @@ -1623,6 +1623,17 @@ int strtomenu(const char *input) #ifdef DEBUG +#ifndef DISABLE_COLOR +void free_list_item(regexlisttype *dropit) +{ + free(dropit->ext_regex); + if (dropit->ext != NULL) + regfree(dropit->ext); + free(dropit->ext); + free(dropit); +} +#endif + /* This function is used to gracefully return all the memory we've used. * It should be called just before calling exit(). Practically, the * only effect is to cause a segmentation fault if the various data @@ -1672,47 +1683,32 @@ void thanks_for_all_the_fish(void) free(syntaxes->desc); free(syntaxes->linter); free(syntaxes->formatter); + while (syntaxes->extensions != NULL) { regexlisttype *bob = syntaxes->extensions; syntaxes->extensions = bob->next; - free(bob->ext_regex); - if (bob->ext != NULL) { - regfree(bob->ext); - free(bob->ext); - } - free(bob); + free_list_item(bob); } while (syntaxes->headers != NULL) { regexlisttype *bob = syntaxes->headers; syntaxes->headers = bob->next; - free(bob->ext_regex); - if (bob->ext != NULL) { - regfree(bob->ext); - free(bob->ext); - } - free(bob); + free_list_item(bob); } while (syntaxes->magics != NULL) { regexlisttype *bob = syntaxes->magics; syntaxes->magics = bob->next; - free(bob->ext_regex); - if (bob->ext != NULL) { - regfree(bob->ext); - free(bob->ext); - } - free(bob); + free_list_item(bob); } + while (syntaxes->color != NULL) { colortype *bob = syntaxes->color; - syntaxes->color = bob->next; free(bob->start_regex); if (bob->start != NULL) { regfree(bob->start); free(bob->start); } - if (bob->end_regex != NULL) - free(bob->end_regex); + free(bob->end_regex); if (bob->end != NULL) { regfree(bob->end); free(bob->end); @@ -1744,5 +1740,4 @@ void thanks_for_all_the_fish(void) free(homedir); #endif } - #endif /* DEBUG */