]> granicus.if.org Git - neomutt/commitdiff
Reverts making AliasFile into a list_t (#379)
authorguyzmo <guyzmo+github+pub@m0g.net>
Thu, 9 Feb 2017 17:27:46 +0000 (18:27 +0100)
committerPietro Cerutti <gahr@gahr.ch>
Thu, 9 Feb 2017 17:27:46 +0000 (17:27 +0000)
Uses the first loaded muttrc file as default for alias file.

This partially reverts commit 83f7558efab3dcd7b7e227a727ef95f711363f50.

fixes #378

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
alias.c
globals.h
init.c
init.h

diff --git a/alias.c b/alias.c
index 6d1468a2e4454019a6ecee79e48752563b3fe5e4..3bbef208a1bb5626c0f009c140dcf7354019ce3a 100644 (file)
--- a/alias.c
+++ b/alias.c
@@ -344,53 +344,49 @@ retry_name:
   else
     Aliases = new;
 
-  for (LIST *AliasFile = AliasFiles; AliasFile != NULL;
-      AliasFile = AliasFile->next)
+  strfcpy (buf, NONULL (AliasFile), sizeof (buf));
+  if (mutt_get_field (_("Save to file: "), buf, sizeof (buf), MUTT_FILE) != 0)
+    return;
+  mutt_expand_path (buf, sizeof (buf));
+  if ((rc = fopen (buf, "a+")))
   {
-    strfcpy(buf, NONULL(AliasFile->data), sizeof(buf));
-    if (mutt_get_field(_("Save to file: "), buf, sizeof(buf), MUTT_FILE) != 0)
-      return;
-    mutt_expand_path(buf, sizeof(buf));
-    if ((rc = fopen(buf, "a+")))
+    /* terminate existing file with \n if necessary */
+    if (fseek (rc, 0, SEEK_END))
+      goto fseek_err;
+    if (ftell(rc) > 0)
     {
-      /* terminate existing file with \n if necessary */
-      if (fseek(rc, 0, SEEK_END))
-        goto fseek_err;
-      if (ftell(rc) > 0)
+      if (fseek (rc, -1, SEEK_CUR) < 0)
+       goto fseek_err;
+      if (fread(buf, 1, 1, rc) != 1)
       {
-        if (fseek(rc, -1, SEEK_CUR) < 0)
-          goto fseek_err;
-        if (fread(buf, 1, 1, rc) != 1)
-        {
-          mutt_perror(_("Error reading alias file"));
-          safe_fclose(&rc);
-          return;
-        }
-        if (fseek(rc, 0, SEEK_END) < 0)
-          goto fseek_err;
-        if (buf[0] != '\n')
-          fputc('\n', rc);
+       mutt_perror (_("Error reading alias file"));
+       safe_fclose (&rc);
+       return;
       }
-
-      if (mutt_check_alias_name(new->name, NULL, 0))
-        mutt_quote_filename(buf, sizeof(buf), new->name);
-      else
-        strfcpy(buf, new->name, sizeof(buf));
-      recode_buf(buf, sizeof(buf));
-      fprintf(rc, "alias %s ", buf);
-      buf[0] = 0;
-      rfc822_write_address(buf, sizeof(buf), new->addr, 0);
-      recode_buf(buf, sizeof(buf));
-      write_safe_address(rc, buf);
-      fputc('\n', rc);
-      if (safe_fsync_close(&rc) != 0)
-        mutt_message("Trouble adding alias: %s.", strerror(errno));
-      else
-        mutt_message(_("Alias added."));
+      if (fseek (rc, 0, SEEK_END) < 0)
+       goto fseek_err;
+      if (buf[0] != '\n')
+       fputc ('\n', rc);
     }
+
+    if (mutt_check_alias_name (new->name, NULL, 0))
+      mutt_quote_filename (buf, sizeof (buf), new->name);
     else
-      mutt_perror(buf);
+      strfcpy (buf, new->name, sizeof (buf));
+    recode_buf (buf, sizeof (buf));
+    fprintf (rc, "alias %s ", buf);
+    buf[0] = 0;
+    rfc822_write_address (buf, sizeof (buf), new->addr, 0);
+    recode_buf (buf, sizeof (buf));
+    write_safe_address (rc, buf);
+    fputc ('\n', rc);
+    if (safe_fsync_close(&rc) != 0)
+      mutt_message ("Trouble adding alias: %s.", strerror(errno));
+    else
+      mutt_message (_("Alias added."));
   }
+  else
+    mutt_perror (buf);
 
   return;
   
index 4bd58852aac6d49545cb007f9db68dc9a7025b9f..b51c558d8f228a7e4d9ef01337749d66f5559a26 100644 (file)
--- a/globals.h
+++ b/globals.h
@@ -31,7 +31,7 @@ WHERE char *MuttDotlock;
 WHERE ADDRESS *EnvFrom;
 WHERE ADDRESS *From;
 
-WHERE LIST *AliasFiles;
+WHERE char *AliasFile;
 WHERE char *AliasFmt;
 WHERE char *AssumedCharset;
 WHERE char *AttachSep;
diff --git a/init.c b/init.c
index 7d1b97682fd252e8729bd47f02b2311864e58e0c..c591c93b8f82d3b7d80a4aed60381f24b2622d90 100644 (file)
--- a/init.c
+++ b/init.c
@@ -3807,10 +3807,10 @@ void mutt_init (int skip_sys_rc, LIST *commands)
     }
   }
 
-  if (Muttrc)
+  if (Muttrc && Muttrc->data)
   {
-    FREE (&AliasFiles);
-    AliasFiles = mutt_copy_list(Muttrc);
+    FREE (&AliasFile);
+    AliasFile = safe_strdup (Muttrc->data);
   }
 
   /* Process the global rc file if it exists and the user hasn't explicity
diff --git a/init.h b/init.h
index 7efbbb34a54991c082d5898b86277f74feae1f43..0791d51866e72a6956f68e6ce0de338705df9357 100644 (file)
--- a/init.h
+++ b/init.h
@@ -123,7 +123,7 @@ struct option_t MuttVars[] = {
   ** check only happens after the \fIfirst\fP edit of the file).  When set
   ** to \fIno\fP, composition will never be aborted.
   */
-  { "alias_file",      DT_PATH, R_NONE, UL &AliasFiles, UL "~/.muttrc" },
+  { "alias_file",      DT_PATH, R_NONE, UL &AliasFile, UL "~/.muttrc" },
   /*
   ** .pp
   ** The default file in which to save aliases created by the