]> git.wh0rd.org Git - nano.git/commitdiff
Condensing some code by factoring out a repetition.
authorBenno Schulenberg <bensberg@justemail.net>
Mon, 22 Feb 2016 09:34:33 +0000 (09:34 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Mon, 22 Feb 2016 09:34:33 +0000 (09:34 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5659 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/global.c

index 31676ccf02aab027f9fc964d6f9bb8881863157b..472e8cdcf5b7415ce5bcea84f1c2f923b57124e6 100644 (file)
--- 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
index 35d8c518245e4de6d89f7500cb81039491544e4a..06cde108e2d13563ff71c283d211892fb3faba91 100644 (file)
@@ -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 */