Removed the draft message in favor for a consistent draft folder facility
[mmh] / sbr / m_draft.c
index ceee73a..4a64804 100644 (file)
 #include <errno.h>
 
 
+/*
+**  `which' should either be "cur" to use the current draft
+**  or "new" to start with a new draft.
+*/
 char *
-m_draft (char *folder, char *msg, int use, int *isdf)
+m_draft(char *which)
 {
        register char *cp;
        register struct msgs *mp;
        static char buffer[BUFSIZ];
+       char *folder;
 
-       if (*isdf == -1 || folder == NULL || *folder == '\0') {
-               if (*isdf == -1 || (cp = context_find ("Draft-Folder")) == NULL) {
-                       *isdf = 0;
-                       return m_maildir (msg && *msg ? msg : draft);
-               } else {
-                       folder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp,
-                                       *cp != '@' ? TFOLDER : TSUBCWF);
-               }
-       }
-       *isdf = 1;
+       cp = draftfolder;
+       folder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp,
+                       *cp != '@' ? TFOLDER : TSUBCWF);
 
        chdir (m_maildir (""));
        strncpy (buffer, m_maildir (folder), sizeof(buffer));
@@ -57,23 +55,19 @@ m_draft (char *folder, char *msg, int use, int *isdf)
        mp->msgflags |= ALLOW_NEW;  /* allow the "new" sequence */
 
        /*
-        * If we have been give a valid message name, then use that.
-        * Else, if we are given the "use" option, then use the
-        * current message.  Else, use special sequence "new".
+        * The draft message name to return is defined by `which'.
+        * Usually it is "cur" (for the current draft) or "new"
+        * (to start a new draft).
         */
-       if (!m_convert (mp, msg && *msg ? msg : use ? "cur" : "new"))
+       if (!m_convert (mp, which))
                done (1);
        seq_setprev (mp);
 
-       if (mp->numsel > 1)
-               adios (NULL, "only one message draft at a time!");
-
-       snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath, m_name (mp->lowsel));
-       cp = buffer;
-
-       seq_setcur (mp, mp->lowsel);/* set current message for folder */
-       seq_save (mp);  /* synchronize message sequences  */
-       folder_free (mp);  /* free folder/message structure  */
+       snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath,
+                       m_name (mp->lowsel));
+       seq_setcur (mp, mp->lowsel);
+       seq_save (mp);
+       folder_free (mp);
 
-       return cp;
+       return buffer;
 }