]> granicus.if.org Git - neomutt/commitdiff
fix :reset to work with empty strings
authorAron Griffis <agriffis@n01se.net>
Fri, 24 Jul 2009 03:36:41 +0000 (23:36 -0400)
committerAron Griffis <agriffis@n01se.net>
Fri, 24 Jul 2009 03:36:41 +0000 (23:36 -0400)
Signed-off-by: Aron Griffis <agriffis@n01se.net>
init.c

diff --git a/init.c b/init.c
index 000575092af7c37e29f2807831f5d73c172766a7..3b894041dac543a650c1cbf115cd7056d6bcc0b8 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1521,25 +1521,22 @@ static void mutt_restore_default (struct option_t *p)
   switch (p->type & DT_MASK)
   {
     case DT_STR:
-      if (p->init)
-       mutt_str_replace ((char **) p->data, (char *) p->init); 
+      mutt_str_replace ((char **) p->data, (char *) p->init); 
       break;
     case DT_PATH:
+      FREE((char **) p->data);
       if (p->init)
       {
        char path[_POSIX_PATH_MAX];
-
        strfcpy (path, (char *) p->init, sizeof (path));
        mutt_expand_path (path, sizeof (path));
-       mutt_str_replace ((char **) p->data, path);
+       *((char **) p->data) = safe_strdup (path);
       }
       break;
     case DT_ADDR:
+      rfc822_free_address ((ADDRESS **) p->data);
       if (p->init)
-      {
-       rfc822_free_address ((ADDRESS **) p->data);
        *((ADDRESS **) p->data) = rfc822_parse_adrlist (NULL, (char *) p->init);
-      }
       break;
     case DT_BOOL:
       if (p->init)