]> diplodocus.org Git - nmh/commitdiff
Implemented -build switch for comp, at the request of the MH-E developers.
authorKen Hornstein <kenh@pobox.com>
Fri, 18 Oct 2013 02:03:07 +0000 (22:03 -0400)
committerKen Hornstein <kenh@pobox.com>
Fri, 18 Oct 2013 02:03:07 +0000 (22:03 -0400)
man/comp.man
uip/comp.c

index 387ec129e409ff2fbb10f03f81a427065a930a6e..ab030ebd2d99c6a7f28f07a614a142b1d3454e2a 100644 (file)
@@ -38,6 +38,7 @@ comp \- compose a message
 .RB [ \-whatnowproc
 .IR program ]
 .RB [ \-nowhatnowproc ]
 .RB [ \-whatnowproc
 .IR program ]
 .RB [ \-nowhatnowproc ]
+.RB [ \-build ]
 .RB [ \-version ]
 .RB [ \-help ]
 .ad
 .RB [ \-version ]
 .RB [ \-help ]
 .ad
@@ -230,6 +231,16 @@ the
 program which starts the initial edit.  Hence,
 .B \-nowhatnowproc
 will prevent any edit from occurring.)
 program which starts the initial edit.  Hence,
 .B \-nowhatnowproc
 will prevent any edit from occurring.)
+.PP
+The
+.B \-build
+switch is intended to be used by the Emacs mh-e interface to
+.BR nmh .
+It implies
+.BR \-nowhatnowproc .
+It causes a file <mh\-dir>/draft to be created, containing the draft message that
+would normally be presented to the user for editing.
+No mail is actually sent.
 .SH FILES
 .PD 0
 .TP 20
 .SH FILES
 .PD 0
 .TP 20
index be7968d1146f428d3846f5a60eee94a58739218e..08507299e63c8ffb23785cadfe42ef8013e7179a 100644 (file)
@@ -24,6 +24,7 @@
     X("nouse", 0, NUSESW) \
     X("whatnowproc program", 0, WHATSW) \
     X("nowhatnowproc", 0, NWHATSW) \
     X("nouse", 0, NUSESW) \
     X("whatnowproc program", 0, WHATSW) \
     X("nowhatnowproc", 0, NWHATSW) \
+    X("build", 5, BILDSW) \
     X("version", 0, VERSIONSW) \
     X("help", 0, HELPSW) \
     X("to address", 0, TOSW) \
     X("version", 0, VERSIONSW) \
     X("help", 0, HELPSW) \
     X("to address", 0, TOSW) \
@@ -69,7 +70,7 @@ static struct swit aqrul[] = {
 int
 main (int argc, char **argv)
 {
 int
 main (int argc, char **argv)
 {
-    int use = NOUSE, nedit = 0, nwhat = 0;
+    int use = NOUSE, nedit = 0, nwhat = 0, build = 0;
     int i, in = NOTOK, isdf = 0, out, dat[5], format_len = 0;
     int outputlinelen = OUTPUTLINELEN;
     char *cp, *cwd, *maildir, *dfolder = NULL;
     int i, in = NOTOK, isdf = 0, out, dat[5], format_len = 0;
     int outputlinelen = OUTPUTLINELEN;
     char *cp, *cwd, *maildir, *dfolder = NULL;
@@ -125,6 +126,10 @@ main (int argc, char **argv)
                        adios (NULL, "missing argument to %s", argp[-2]);
                    nwhat = 0;
                    continue;
                        adios (NULL, "missing argument to %s", argp[-2]);
                    nwhat = 0;
                    continue;
+
+               case BILDSW:
+                   build++;
+                   /* fall through */
                case NWHATSW: 
                    nwhat++;
                    continue;
                case NWHATSW: 
                    nwhat++;
                    continue;
@@ -316,12 +321,13 @@ main (int argc, char **argv)
     }
 
 try_it_again:
     }
 
 try_it_again:
-    strncpy (drft, m_draft (dfolder, file, use, &isdf), sizeof(drft));
+    strncpy (drft, build ? m_maildir ("draft")
+                       : m_draft (dfolder, file, use, &isdf), sizeof(drft));
 
     /*
      * Check if we have an existing draft
      */
 
     /*
      * Check if we have an existing draft
      */
-    if ((out = open (drft, O_RDONLY)) != NOTOK) {
+    if (!build && (out = open (drft, O_RDONLY)) != NOTOK) {
        i = fdcompare (in, out);
        close (out);
 
        i = fdcompare (in, out);
        close (out);