]> diplodocus.org Git - nmh/blobdiff - sbr/m_draft.c
Normalize some #include paths.
[nmh] / sbr / m_draft.c
index d3e988edd5925d4527b6b733f6e2949a6bf29a3c..342f44f02df54d60ae922471e309b871b38b1391 100644 (file)
@@ -1,38 +1,50 @@
-
-/*
- * m_draft.c -- construct the name of a draft message
- *
- * $Id$
+/* m_draft.c -- construct the name of a draft message
  *
  * 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.
  */
 
  *
  * 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 <h/utils.h>
-#include <errno.h>
+#include "h/mh.h"
+#include "m_name.h"
+#include "seq_setprev.h"
+#include "seq_setcur.h"
+#include "seq_save.h"
+#include "m_draft.h"
+#include "m_convert.h"
+#include "folder_read.h"
+#include "folder_realloc.h"
+#include "folder_free.h"
+#include "context_find.h"
+#include "path.h"
+#include "error.h"
+#include "h/utils.h"
+#include "m_maildir.h"
+#include "h/done.h"
 
 
 
 
+/* Does not return NULL. */
 char *
 m_draft (char *folder, char *msg, int use, int *isdf)
 {
 char *
 m_draft (char *folder, char *msg, int use, int *isdf)
 {
-    register char *cp;
-    register struct msgs *mp;
+    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);
     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;
     
     }
     *isdf = 1;
     
-    chdir (m_maildir (""));
+    if (chdir (m_maildir ("")) < 0) {
+       advise (m_maildir (""), "chdir");
+    }
     strncpy (buffer, m_maildir (folder), sizeof(buffer));
 
     create_folder (buffer, 0, done);
     strncpy (buffer, m_maildir (folder), sizeof(buffer));
 
     create_folder (buffer, 0, done);
@@ -40,8 +52,8 @@ m_draft (char *folder, char *msg, int use, int *isdf)
     if (chdir (buffer) == -1)
        adios (buffer, "unable to change directory to");
 
     if (chdir (buffer) == -1)
        adios (buffer, "unable to change directory to");
 
-    if (!(mp = folder_read (folder)))
-       adios (NULL, "unable to read folder %s", folder);
+    if (!(mp = folder_read (folder, 1)))
+       die("unable to read folder %s", folder);
 
     /*
      * Make sure we have enough message status space for all
 
     /*
      * Make sure we have enough message status space for all
@@ -51,10 +63,10 @@ m_draft (char *folder, char *msg, int use, int *isdf)
      */
     if (mp->hghmsg >= mp->hghoff) {
        if (!(mp = folder_realloc (mp, 1, mp->hghmsg + 10)))
      */
     if (mp->hghmsg >= mp->hghoff) {
        if (!(mp = folder_realloc (mp, 1, mp->hghmsg + 10)))
-           adios (NULL, "unable to allocate folder storage");
+           die("unable to allocate folder storage");
     } else if (mp->lowoff > 1) {
        if (!(mp = folder_realloc (mp, 1, mp->hghoff)))
     } else if (mp->lowoff > 1) {
        if (!(mp = folder_realloc (mp, 1, mp->hghoff)))
-           adios (NULL, "unable to allocate folder storage");
+           die("unable to allocate folder storage");
     }
 
     mp->msgflags |= ALLOW_NEW; /* allow the "new" sequence */
     }
 
     mp->msgflags |= ALLOW_NEW; /* allow the "new" sequence */
@@ -69,7 +81,7 @@ m_draft (char *folder, char *msg, int use, int *isdf)
     seq_setprev (mp);
 
     if (mp->numsel > 1)
     seq_setprev (mp);
 
     if (mp->numsel > 1)
-       adios (NULL, "only one message draft at a time!");
+       die("only one message draft at a time!");
 
     snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath, m_name (mp->lowsel));
     cp = buffer;
 
     snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath, m_name (mp->lowsel));
     cp = buffer;