]> diplodocus.org Git - nmh/blobdiff - sbr/m_draft.c
fix_filename_param(): Replace strncmp() with HasSuffix().
[nmh] / sbr / m_draft.c
index 712e173d0325cce5755e49e92444970696d622e5..7af505813171ce6de4705735e5845ba3158b5665 100644 (file)
@@ -2,51 +2,44 @@
 /*
  * m_draft.c -- construct the name of a draft message
  *
- * $Id$
+ * This code is Copyright (c) 2002, by the authors of nmh.  See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information.
  */
 
 #include <h/mh.h>
-#include <errno.h>
-
-extern int errno;
+#include <h/utils.h>
 
 
 char *
 m_draft (char *folder, char *msg, int use, int *isdf)
 {
-    register char *cp;
-    register struct msgs *mp;
-    struct stat st;
+    char *cp;
+    struct msgs *mp;
     static char buffer[BUFSIZ];
 
     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);
        }
+
+        folder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp,
+                *cp != '@' ? TFOLDER : TSUBCWF);
     }
     *isdf = 1;
     
-    chdir (m_maildir (""));
-    strncpy (buffer, m_maildir (folder), sizeof(buffer));
-    if (stat (buffer, &st) == -1) {
-       if (errno != ENOENT)
-           adios (buffer, "error on folder");
-       cp = concat ("Create folder \"", buffer, "\"? ", NULL);
-       if (!getanswer (cp))
-           done (0);
-       free (cp);
-       if (!makedir (buffer))
-           adios (NULL, "unable to create folder %s", buffer);
+    if (chdir (m_maildir ("")) < 0) {
+       advise (m_maildir (""), "chdir");
     }
+    strncpy (buffer, m_maildir (folder), sizeof(buffer));
+
+    create_folder (buffer, 0, done);
 
     if (chdir (buffer) == -1)
        adios (buffer, "unable to change directory to");
 
-    if (!(mp = folder_read (folder)))
+    if (!(mp = folder_read (folder, 1)))
        adios (NULL, "unable to read folder %s", folder);
 
     /*