From: Pierre Habouzit Date: Sat, 18 Nov 2006 14:25:19 +0000 (+0100) Subject: list2_t -- X-Git-Url: http://git.madism.org/?a=commitdiff_plain;h=3984877e812b0ba73b84539d231aeca3c2de6b9b;p=apps%2Fmadmutt.git list2_t -- also note that the way synonyms are handled is completely naive. Signed-off-by: Pierre Habouzit --- diff --git a/browser.c b/browser.c index ae9c540..93a5d76 100644 --- a/browser.c +++ b/browser.c @@ -31,8 +31,6 @@ #include "nntp.h" #endif -#include "lib/list.h" - static struct mapping_t FolderHelp[] = { {N_("Exit"), OP_EXIT}, {N_("Chdir"), OP_CHANGE_DIRECTORY}, diff --git a/init.c b/init.c index 13797c3..983a620 100644 --- a/init.c +++ b/init.c @@ -34,8 +34,6 @@ #include "mx.h" #include "init.h" -#include "lib/list.h" - /* * prototypes */ @@ -47,15 +45,24 @@ static int parse_sort (struct option_t* dst, const char *s, static HASH *ConfigOptions = NULL; /* for synonym warning reports: synonym found during parsing */ -typedef struct { +typedef struct syn_t { + struct syn_t *next; char* f; /* file */ int l; /* line */ struct option_t* n; /* new */ struct option_t* o; /* old */ } syn_t; +DO_INIT(syn_t, syn); +static void syn_wipe(syn_t *syn) { + p_delete(&syn->f); +} +DO_NEW(syn_t, syn); +DO_DELETE(syn_t, syn); +DO_SLIST(syn_t, syn, syn_delete); + /* for synonym warning reports: list of synonyms found */ -static list2_t* Synonyms; +static syn_t *Synonyms = NULL; /* for synonym warning reports: current rc file */ static const char* CurRCFile = NULL; /* for synonym warning reports: current rc line */ @@ -535,22 +542,6 @@ int mutt_option_value (const char* val, char* dst, ssize_t dstlen) { return (1); } -/* for synonym warning reports: adds synonym to end of list */ -static void syn_add (struct option_t* n, struct option_t* o) { - syn_t* tmp = p_new(syn_t, 1); - tmp->f = m_strdup(CurRCFile); - tmp->l = CurRCLine; - tmp->n = n; - tmp->o = o; - list_push_back (&Synonyms, tmp); -} - -/* for synonym warning reports: free single item (for list_del()) */ -static void syn_del (void** p) { - p_delete(&(*(syn_t**) p)->f); - p_delete(p); -} - static void toggle_quadoption (int opt) { int n = opt / 4; @@ -1798,9 +1789,15 @@ static int parse_set (BUFFER * tmp, BUFFER * s, unsigned long data, /* resolve synonyms */ if ((option = hash_find (ConfigOptions, tmp->data)) != NULL && - DTYPE (option->type == DT_SYN)) { + DTYPE (option->type == DT_SYN)) + { struct option_t* newopt = hash_find (ConfigOptions, (char*) option->data); - syn_add (newopt, option); + syn_t* tmp = syn_new(); + tmp->f = m_strdup(CurRCFile); + tmp->l = CurRCLine; + tmp->n = newopt; + tmp->o = option; + syn_list_push(&Synonyms, tmp); option = newopt; } @@ -2724,22 +2721,20 @@ void mutt_init (int skip_sys_rc, string_list_t * commands) need_pause = 1; /* warn about synonym variables */ - if (!list_empty(Synonyms)) { - i = 0; + if (Synonyms) { + syn_t *syn; + fprintf (stderr, _("Warning: the following synonym variables were found:\n")); - for (i = 0; i < Synonyms->length; i++) { - struct option_t* newopt = NULL, *oldopt = NULL; - newopt = (struct option_t*) ((syn_t*) Synonyms->data[i])->n; - oldopt = (struct option_t*) ((syn_t*) Synonyms->data[i])->o; - fprintf (stderr, "$%s ($%s should be used) (%s:%d)\n", - oldopt ? NONULL (oldopt->option) : "", - newopt ? NONULL (newopt->option) : "", - NONULL(((syn_t*) Synonyms->data[i])->f), - ((syn_t*) Synonyms->data[i])->l); + + for (syn = Synonyms; syn; syn = syn->next) { + fprintf(stderr, "$%s ($%s should be used) (%s:%d)\n", + syn->o ? NONULL(syn->o->option) : "", + syn->n ? NONULL(syn->n->option) : "", + NONULL(syn->f), syn->l); } fprintf (stderr, _("Warning: synonym variables are scheduled" " for removal.\n")); - list_del (&Synonyms, syn_del); + syn_list_wipe(&Synonyms); need_pause = 1; } @@ -2747,10 +2742,6 @@ void mutt_init (int skip_sys_rc, string_list_t * commands) if (mutt_any_key_to_continue (NULL) == -1) mutt_exit (1); } - -#if 0 - set_option (OPTWEED); /* turn weeding on by default */ -#endif } int mutt_get_hook_type (const char *name) diff --git a/mx.c b/mx.c index 2f127c1..4eef63e 100644 --- a/mx.c +++ b/mx.c @@ -44,8 +44,6 @@ #include -#include "lib/list.h" - static mx_t const *mxfmts[] = { &mbox_mx, &mmdf_mx,