1: /* m_draft.c - construct the draft name */
   2: 
   3: #include "../h/mh.h"
   4: #include <errno.h>
   5: #include <stdio.h>
   6: #include <sys/types.h>
   7: #include <sys/stat.h>
   8: 
   9: 
  10: extern int errno;
  11: 
  12: 
  13: char   *m_draft (folder, msg, use, isdf)
  14: register char  *folder,
  15:                *msg;
  16: register int    use,
  17:                *isdf;
  18: {
  19:     register char  *cp;
  20:     register struct msgs   *mp;
  21:     struct stat st;
  22:     static char buffer[BUFSIZ];
  23: 
  24:     if (*isdf == NOTOK || folder == NULL || *folder == NULL) {
  25:     if (*isdf == NOTOK || (cp = m_find ("Draft-Folder")) == NULL) {
  26:         *isdf = 0;
  27:         return m_maildir (msg && *msg ? msg : draft);
  28:     }
  29:     else
  30:         folder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp,
  31:             *cp != '@' ? TFOLDER : TSUBCWF);
  32:     }
  33:     *isdf = 1;
  34: 
  35:     (void) chdir (m_maildir (""));
  36:     (void) strcpy (buffer, m_maildir (folder));
  37:     if (stat (buffer, &st) == NOTOK) {
  38:     if (errno != ENOENT)
  39:         adios (buffer, "error on folder");
  40:     cp = concat ("Create folder \"", buffer, "\"? ", NULLCP);
  41:     if (!getanswer (cp))
  42:         done (0);
  43:     free (cp);
  44:     if (!makedir (buffer))
  45:         adios (NULLCP, "unable to create folder %s", buffer);
  46:     }
  47: 
  48:     if (chdir (buffer) == NOTOK)
  49:     adios (buffer, "unable to change directory to");
  50:     if (!(mp = m_gmsg (folder)))
  51:     adios (NULLCP, "unable to read folder %s", folder);
  52: 
  53:     if ((mp = m_remsg (mp, 0, MAXFOLDER)) == NULL)
  54:     adios (NULLCP, "unable to allocate folder storage");
  55:     mp -> msgflags |= MHPATH;
  56: 
  57:     if (!m_convert (mp, msg && *msg ? msg : use ? "cur" : "new"))
  58:     done (1);
  59:     m_setseq (mp);
  60:     if (mp -> numsel > 1)
  61:     adios (NULLCP, "only one message draft at a time!");
  62: 
  63:     (void) sprintf (buffer, "%s/%s", mp -> foldpath, m_name (mp -> lowsel));
  64:     cp = buffer;
  65: 
  66:     m_setcur (mp, mp -> lowsel);
  67:     m_sync (mp);
  68:     m_fmsg (mp);
  69: 
  70:     return cp;
  71: }

Defined functions

m_draft defined in line 13; never used
Last modified: 1986-02-19
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1099
Valid CSS Valid XHTML 1.0 Strict