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:
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 */