X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fm_draft.c;h=4a648047e762e72f46e9c101f9300d763da4904d;hb=337338b404931f06f0db2119c9e145e8ca5a9860;hp=ceee73a8b9b5537a6875f39cdd8a663b9e3c53ca;hpb=a485ed478abbd599d8c9aab48934e7a26733ecb1;p=mmh diff --git a/sbr/m_draft.c b/sbr/m_draft.c index ceee73a..4a64804 100644 --- a/sbr/m_draft.c +++ b/sbr/m_draft.c @@ -11,23 +11,21 @@ #include +/* +** `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; }