mutt_regexlist_free(&UnMailLists);
mutt_regexlist_free(&UnSubscribedLists);
+ mutt_groups_free();
mutt_hash_destroy(&ReverseAliases);
mutt_hash_destroy(&TagFormats);
mutt_hash_destroy(&TagTransforms);
err.data = mutt_mem_malloc(err.dsize);
err.dptr = err.data;
+ mutt_groups_init();
/* reverse alias keys need to be strdup'ed because of idna conversions */
ReverseAliases = mutt_hash_new(1031, MUTT_HASH_STRCASECMP | MUTT_HASH_STRDUP_KEYS |
MUTT_HASH_ALLOW_DUPS);
#include "regex3.h"
#include "string2.h"
-static struct Hash *groups(void)
+static struct Hash *Groups = NULL;
+
+void mutt_groups_init(void)
{
- static struct Hash *g = NULL;
- if (g == NULL)
- {
- g = mutt_hash_new(1031, 0);
- }
- return g;
+ Groups = mutt_hash_new(1031, 0);
+}
+
+void mutt_groups_free(void)
+{
+ mutt_hash_destroy(&Groups);
}
/**
if (!k)
return 0;
- p = mutt_hash_find(groups(), k);
+ p = mutt_hash_find(Groups, k);
if (!p)
{
mutt_debug(2, "Creating group %s.\n", k);
p = mutt_mem_calloc(1, sizeof(struct Group));
p->name = mutt_str_strdup(k);
STAILQ_INIT(&p->rs);
- mutt_hash_insert(groups(), p->name, p);
+ mutt_hash_insert(Groups, p->name, p);
}
return p;
{
if (!g)
return;
- mutt_hash_delete(groups(), g->name, g);
+ mutt_hash_delete(Groups, g->name, g);
mutt_addr_free(&g->as);
mutt_regexlist_free(&g->rs);
FREE(&g->name);
struct Group *mutt_pattern_group(const char *k);
+void mutt_groups_init(void);
+void mutt_groups_free(void);
+
#endif /* MUTT_GROUP_H */