From: Ken Hornstein Date: Fri, 18 Oct 2013 02:03:07 +0000 (-0400) Subject: Implemented -build switch for comp, at the request of the MH-E developers. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/2c8434f970fbb85fbf32da674a29b7f0d292ef16?ds=inline Implemented -build switch for comp, at the request of the MH-E developers. --- diff --git a/man/comp.man b/man/comp.man index 387ec129..ab030ebd 100644 --- a/man/comp.man +++ b/man/comp.man @@ -38,6 +38,7 @@ comp \- compose a message .RB [ \-whatnowproc .IR program ] .RB [ \-nowhatnowproc ] +.RB [ \-build ] .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.) +.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 /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 diff --git a/uip/comp.c b/uip/comp.c index be7968d1..08507299 100644 --- a/uip/comp.c +++ b/uip/comp.c @@ -24,6 +24,7 @@ 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) \ @@ -69,7 +70,7 @@ static struct swit aqrul[] = { 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; @@ -125,6 +126,10 @@ main (int argc, char **argv) adios (NULL, "missing argument to %s", argp[-2]); nwhat = 0; continue; + + case BILDSW: + build++; + /* fall through */ case NWHATSW: nwhat++; continue; @@ -316,12 +321,13 @@ main (int argc, char **argv) } 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 */ - if ((out = open (drft, O_RDONLY)) != NOTOK) { + if (!build && (out = open (drft, O_RDONLY)) != NOTOK) { i = fdcompare (in, out); close (out);