Attached is a slightly revised patch, using a NONULL check instead, to
simplify the patch even more.

Revised patch also uploaded to trac.

-Kevin
# HG changeset patch
# User Kevin McCarthy <[email protected]>
# Date 1373856524 25200
# Branch HEAD
# Node ID 4b85ecf42063b401ddd2013b5104a0c8d0cad390
# Parent  d3096e8796e7fcbd7ed507b7502029c7f73f159e
Allow filename prompt when saving multiple attachments to a directory. (closes #3083)

Currently, if you specify a directory when saving multiple attachments
and choose (a)ll, the first attachment is saved without confirming the
filename.  Subsequent attachments prompt for the filename.

diff --git a/muttlib.c b/muttlib.c
--- a/muttlib.c
+++ b/muttlib.c
@@ -987,26 +987,21 @@
 	case  2:	/* no */
 	  FREE (directory);		/* __FREE_CHECKED__ */
 	  return 1;
       }
     }
     else if ((rc = mutt_yesorno (_("File is a directory, save under it?"), M_YES)) != M_YES)
       return (rc == M_NO) ? 1 : -1;
 
-    if (!attname || !attname[0])
-    {
-      tmp[0] = 0;
-      if (mutt_get_field (_("File under directory: "), tmp, sizeof (tmp),
-				      M_FILE | M_CLEAR) != 0 || !tmp[0])
-	return (-1);
-      mutt_concat_path (fname, path, tmp, flen);
-    }
-    else
-      mutt_concat_path (fname, path, mutt_basename (attname), flen);
+    strfcpy (tmp, mutt_basename (NONULL (attname)), sizeof (tmp));
+    if (mutt_get_field (_("File under directory: "), tmp, sizeof (tmp),
+                                    M_FILE | M_CLEAR) != 0 || !tmp[0])
+      return (-1);
+    mutt_concat_path (fname, path, tmp, flen);
   }
   
   if (*append == 0 && access (fname, F_OK) == 0)
   {
     switch (mutt_multi_choice
 	    (_("File exists, (o)verwrite, (a)ppend, or (c)ancel?"), _("oac")))
     {
       case -1: /* abort */

Attachment: signature.asc
Description: Digital signature

Reply via email to