From: Pietro Cerutti Date: Fri, 25 May 2018 10:53:37 +0000 (+0000) Subject: Get rid of global variable X-Git-Tag: 2019-10-25~442^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98b4de54efc7e03f740c5c7b1436a7f400e6b2af;p=neomutt Get rid of global variable --- diff --git a/init.c b/init.c index 20fdc8d26..e30c3f3c3 100644 --- a/init.c +++ b/init.c @@ -2788,7 +2788,6 @@ void mutt_free_opts(void) mutt_regexlist_free(&UnMailLists); mutt_regexlist_free(&UnSubscribedLists); - mutt_hash_destroy(&Groups); mutt_hash_destroy(&ReverseAliases); mutt_hash_destroy(&TagFormats); mutt_hash_destroy(&TagTransforms); @@ -2865,7 +2864,6 @@ int mutt_init(bool skip_sys_rc, struct ListHead *commands) err.data = mutt_mem_malloc(err.dsize); err.dptr = err.data; - Groups = mutt_hash_new(1031, 0); /* 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); diff --git a/mutt/group.c b/mutt/group.c index 6b8a690f0..56947ae18 100644 --- a/mutt/group.c +++ b/mutt/group.c @@ -39,7 +39,15 @@ #include "regex3.h" #include "string2.h" -struct Hash *Groups; +static struct Hash *groups(void) +{ + static struct Hash *g = NULL; + if (g == NULL) + { + g = mutt_hash_new(1031, 0); + } + return g; +} /** * mutt_pattern_group - Match a pattern to a Group @@ -54,14 +62,14 @@ struct Group *mutt_pattern_group(const char *k) 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; @@ -75,7 +83,7 @@ static void group_remove(struct Group *g) { 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); diff --git a/mutt/group.h b/mutt/group.h index d742e5290..653028bea 100644 --- a/mutt/group.h +++ b/mutt/group.h @@ -32,8 +32,6 @@ struct Address; struct Buffer; struct Hash; -extern struct Hash *Groups; - #define MUTT_GROUP 0 #define MUTT_UNGROUP 1