]> granicus.if.org Git - neomutt/commitdiff
myvarlist_free
authorRichard Russon <rich@flatcap.org>
Sat, 31 Aug 2019 19:24:48 +0000 (20:24 +0100)
committerRichard Russon <rich@flatcap.org>
Sun, 1 Sep 2019 16:37:03 +0000 (17:37 +0100)
main.c
myvar.c
myvar.h

diff --git a/main.c b/main.c
index 22a58044bbb0434e3053c2225d32d553d69b09d9..adfaa870754d2ae0de566b1d14fb4e4be3c7a93d 100644 (file)
--- a/main.c
+++ b/main.c
@@ -71,6 +71,7 @@
 #include "mutt_window.h"
 #include "muttlib.h"
 #include "mx.h"
+#include "myvar.h"
 #include "ncrypt/ncrypt.h"
 #include "options.h"
 #include "protos.h"
@@ -1279,6 +1280,7 @@ main_exit:
   mutt_browser_cleanup();
   mutt_opts_free();
   mutt_keys_free();
+  myvarlist_free(&MyVars);
   neomutt_free(&NeoMutt);
   cs_free(&Config);
   return rc;
diff --git a/myvar.c b/myvar.c
index b2c1957f3b3f01deabb7ac6070413bf0baf6b8d3..26ec1d2b381797c5e11e9d1ecbae71fd68e8b304 100644 (file)
--- a/myvar.c
+++ b/myvar.c
@@ -123,3 +123,21 @@ void myvar_del(const char *var)
     }
   }
 }
+
+/**
+ * myvarlist_free - Free a List of MyVars
+ * @param list List of MyVars
+ */
+void myvarlist_free(struct MyVarList *list)
+{
+  if (!list)
+    return;
+
+  struct MyVar *myv = NULL;
+  struct MyVar *tmp = NULL;
+  TAILQ_FOREACH_SAFE(myv, list, entries, tmp)
+  {
+    TAILQ_REMOVE(list, myv, entries);
+    myvar_free(&myv);
+  }
+}
diff --git a/myvar.h b/myvar.h
index 80eb2c84b970973dcc2b386c106ac4bde8e194a6..26b640681471197ab6bc9f7838aa754085341fab 100644 (file)
--- a/myvar.h
+++ b/myvar.h
@@ -42,4 +42,6 @@ void        myvar_del(const char *var);
 const char *myvar_get(const char *var);
 void        myvar_set(const char *var, const char *val);
 
+void myvarlist_free(struct MyVarList *list);
+
 #endif /* MUTT_MYVAR_H */