Andreas Krennmair:
authorak1 <ak1@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Fri, 4 Feb 2005 15:44:11 +0000 (15:44 +0000)
committerak1 <ak1@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Fri, 4 Feb 2005 15:44:11 +0000 (15:44 +0000)
fixed issues with last-folder patch.

git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@49 e385b8ad-14ed-0310-8656-cc95a2468c6d

enter.c
mutt.h
recvattach.c

diff --git a/enter.c b/enter.c
index afc23f6..5ad1f0a 100644 (file)
--- a/enter.c
+++ b/enter.c
@@ -614,9 +614,10 @@ self_insert:
       /* use the raw keypress */
       ch = LastKey;
 
-      if ((ch == '.') && (flags & (M_FILE | M_EFILE)))
+      if ((ch == '#') && (flags & M_LASTFOLDER))
       {
         rv = 2;
+        my_wcstombs (buf, buflen, state->wbuf, state->lastchar);
         goto bye;
       }
       
diff --git a/mutt.h b/mutt.h
index 21b4373..d5dba99 100644 (file)
--- a/mutt.h
+++ b/mutt.h
 #define  M_CLEAR   (1<<5) /* clear input if printable character is pressed */
 #define  M_COMMAND (1<<6) /* do command completion */
 #define  M_PATTERN (1<<7) /* pattern mode - only used for history classes */
+#define  M_LASTFOLDER (1<<8) /* last-folder mode - hack hack hack */
 
 /* flags for mutt_get_token() */
 #define M_TOKEN_EQUAL          1       /* treat '=' as a special */
index 3375b99..ba5f0fa 100644 (file)
@@ -413,21 +413,22 @@ static int mutt_query_save_attachment (FILE *fp, BODY *body, HEADER *hdr, char *
   else
     buf[0] = 0;
 
-  prompt = _("Save to file ('.' for last used folder): ");
+  prompt = _("Save to file ('#' for last used folder): ");
   while (prompt)
   {
-    ret = mutt_get_field (prompt, buf, sizeof (buf), M_FILE | M_CLEAR);
-    if (((ret != 0) && (ret != 2)) || (!buf[0]))
+    ret = mutt_get_field (prompt, buf, sizeof (buf), M_FILE | M_CLEAR | M_LASTFOLDER);
+    if (((ret != 0) && (ret != 2)) || (!buf[0] && ret != 2))
       return -1;
 
     if (ret == 2)
     {
-      strfcpy (buf, LastSaveFolder, sizeof (buf));
-      strcat(buf,body->filename);
+      char tmpbuf[_POSIX_PATH_MAX];
+      snprintf(tmpbuf,sizeof(tmpbuf),"%s%s",LastSaveFolder,buf);
+      strfcpy (buf, tmpbuf, sizeof (buf));
       ret = mutt_get_field (_("Save to file: ")
-                , buf, sizeof (buf), M_FILE | M_CLEAR);
+                , buf, sizeof (buf), M_FILE);
       if ((ret != 0) || (!buf[0]))
-      return -1;
+        return -1;
     }  
     else
     {