From fe90e98585920a4ab4dab9a64df634cc7888bbae Mon Sep 17 00:00:00 2001 From: Thomas Roessler Date: Tue, 16 May 2000 15:57:36 +0000 Subject: [PATCH] More default setting. This can easily be done much cleaner than the last version of the patch. --- init.c | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/init.c b/init.c index b4d858ff1..1b4141377 100644 --- a/init.c +++ b/init.c @@ -641,6 +641,40 @@ parse_sort (short *val, const char *s, const struct mapping_t *map, BUFFER *err) return 0; } +static void mutt_set_default (struct option_t *p) +{ + switch (p->type & DT_MASK) + { + case DT_STR: + if (*((char **) p->data)) + p->init = (unsigned long) safe_strdup (* ((char **) p->data)); + break; + case DT_PATH: + if (*((char **) p->data)) + { + char *cp = safe_strdup (*((char **) p->data)); + mutt_pretty_mailbox (cp); + p->init = (unsigned long) cp; + } + break; + case DT_ADDR: + if (*((ADDRESS **) p->data)) + { + char tmp[HUGE_STRING]; + rfc822_write_address (tmp, sizeof (tmp), *((ADDRESS **) p->data)); + p->init = (unsigned long) safe_strdup (tmp); + } + break; + case DT_RX: + { + REGEXP *pp = (REGEXP *) p->data; + if (pp->pattern) + p->init = (unsigned long) safe_strdup (pp->pattern); + break; + } + } +} + static void mutt_restore_default (struct option_t *p) { switch (p->type & DT_MASK) @@ -648,8 +682,6 @@ static void mutt_restore_default (struct option_t *p) case DT_STR: if (p->init) mutt_str_replace ((char **) p->data, (char *) p->init); - else if (*((char **) p->data)) - p->init = (unsigned long) safe_strdup (* ((char **) p->data)); break; case DT_PATH: if (p->init) @@ -660,8 +692,6 @@ static void mutt_restore_default (struct option_t *p) mutt_expand_path (path, sizeof (path)); mutt_str_replace ((char **) p->data, path); } - else if (*((char **) p->data)) - p->init = (unsigned long) safe_strdup (* ((char **) p->data)); break; case DT_ADDR: if (p->init) @@ -669,12 +699,6 @@ static void mutt_restore_default (struct option_t *p) rfc822_free_address ((ADDRESS **) p->data); *((ADDRESS **) p->data) = rfc822_parse_adrlist (NULL, (char *) p->init); } - else if (*((ADDRESS **) p->data)) - { - char tmp[HUGE_STRING]; - rfc822_write_address (tmp, sizeof (tmp), *((ADDRESS **) p->data)); - p->init = (unsigned long) safe_strdup (tmp); - } break; case DT_BOOL: if (p->init) @@ -726,8 +750,6 @@ static void mutt_restore_default (struct option_t *p) FREE (&pp->rx); } } - else if (pp->pattern) - p->init = (unsigned long) safe_strdup (pp->pattern); } break; } @@ -1789,7 +1811,10 @@ void mutt_init (int skip_sys_rc, LIST *commands) /* Set standard defaults */ for (i = 0; MuttVars[i].option; i++) + { + mutt_set_default (&MuttVars[i]); mutt_restore_default (&MuttVars[i]); + } CurrentMenu = MENU_MAIN; -- 2.40.0