Made show(1) the default lproc. `list' and `display' changed a bit.
authormarkus schnalke <meillo@marmaro.de>
Sat, 11 Feb 2012 19:18:43 +0000 (20:18 +0100)
committermarkus schnalke <meillo@marmaro.de>
Sat, 11 Feb 2012 19:18:43 +0000 (20:18 +0100)
Already in 1984, MTR stated, that lproc should be show. I agree with him
on this point, but I strongly disagree there: ``if lproc is "mhl", use
mhlproc for consistency''. I thus removed this part and even more around it.
The code became simpler but additional arguments to `list' and `display'
are not recognized anymore. That won't be much inconvenience.

config/config.c
man/mh-profile.man5
man/whatnow.man1
sbr/Makefile.in
sbr/showfile.c [deleted file]
uip/show.c
uip/whatnow.c

index 8d5bd7c..2ccf379 100644 (file)
@@ -136,12 +136,12 @@ char *fileproc = NMHBINDIR"/refile";
 char *incproc = NMHBINDIR"/inc";
 
 /*
-** This is the default program invoked by a "list" response
-** at the "What now?" prompt.  It is also used by the draft
-** folder facility in comp/dist/forw/repl to display the
-** draft message.
+** This is the default program invoked by a "list" or "display" response
+** at the "What now?" prompt. It will be given the absolute pathname of
+** the message to show. The string ``show -file'' is most likely what you
+** want to be you lproc.
 */
-char *lproc = "more";
+char *lproc = "show -file";
 
 /*
 ** This is the path for the Bell equivalent mail program.
index 28fae32..2f67c63 100644 (file)
@@ -400,19 +400,16 @@ is invoked with no arguments.
 .RE
 .PP
 .BR lproc :
-more
+show -file
 .RS 5
 This program is used to list the contents of a message in response
 to the
 .B list
-directive at the \*(lqWhat now?\*(rq prompt.  It is
-also used by the draft folder facility in
-.BR comp ,
-.BR dist ,
-.BR forw ,
 and
-.B repl
-to display the draft message.
+.B display
+directive at the \*(lqWhat now?\*(rq prompt.
+The absolute pathname of the message to list will be appended to
+the command line given.
 .RE
 .PP
 .BR mailproc :
index 27a9ee5..5929523 100644 (file)
@@ -119,21 +119,6 @@ response, any valid switch to the
 .I fileproc
 is valid.
 .PP
-For the
-.B display
-and
-.B list
-responses, any valid argument to
-the
-.I lproc
-is valid.  If any non\-switch arguments are present, then
-the pathname of the draft will be excluded from the argument list given
-to the
-.I lproc
-(this is useful for listing another
-.B nmh
-message).
-.PP
 See
 .BR mh\-profile (5)
 for further information about how editors
index d05672c..f916cea 100644 (file)
@@ -71,7 +71,7 @@ SRCS = addrsbr.c ambigsw.c atooi.c brkstring.c  \
        readconfig.c ruserpass.c seq_add.c seq_bits.c  \
        seq_del.c seq_getnum.c seq_list.c seq_nameok.c  \
        seq_print.c seq_read.c seq_save.c seq_setcur.c  \
-       seq_setprev.c seq_setunseen.c showfile.c signals.c  \
+       seq_setprev.c seq_setunseen.c signals.c  \
        smatch.c snprintb.c strcasecmp.c  \
        strindex.c trimcpy.c uprf.c vfgets.c fmt_def.c  \
        m_msgdef.c mf.c utils.c m_mktemp.c
diff --git a/sbr/showfile.c b/sbr/showfile.c
deleted file mode 100644 (file)
index 594b269..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-** showfile.c -- invoke the `lproc' command
-**
-** 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>
-
-
-int
-showfile(char **arg, char *file)
-{
-       pid_t pid;
-       int isdraft, vecp;
-       char *vec[MAXARGS];
-
-       context_save();  /* save the context file */
-       fflush(stdout);
-
-       /*
-       ** If you have your lproc listed as "mhl",
-       ** then really invoked the mhlproc instead
-       ** (which is usually mhl anyway).
-       */
-       if (strcmp(mhbasename(lproc), "mhl")==0)
-               lproc = mhlproc;
-
-       switch (pid = fork()) {
-       case -1:
-               /* fork error */
-               advise("fork", "unable to");
-               return 1;
-
-       case 0:
-               /* child */
-               vecp = 0;
-               vec[vecp++] = mhbasename(lproc);
-               isdraft = 1;
-               if (arg) {
-                       while (*arg) {
-                               if (**arg != '-')
-                                       isdraft = 0;
-                               vec[vecp++] = *arg++;
-                       }
-               }
-               if (isdraft) {
-                       if (strcmp(vec[0], "show")==0)
-                               vec[vecp++] = "-file";
-                       vec[vecp++] = file;
-               }
-               vec[vecp] = NULL;
-
-               execvp(lproc, vec);
-               fprintf(stderr, "unable to exec ");
-               perror(lproc);
-               _exit(-1);
-
-       default:
-               /* parent */
-               return (pidwait(pid, -1) & 0377 ? 1 : 0);
-       }
-
-       return 1;  /* NOT REACHED */
-}
index be85fd1..08a9b31 100644 (file)
@@ -30,7 +30,7 @@ static struct swit switches[] = {
 #define SHOWMIMESW  8
        { "showmimeproc program", 0 },
 #define FILESW  9
-       { "file file", -4 },  /* interface from showfile */
+       { "file file", -4 },  /* interface from lproc (whatnow) */
 #define VERSIONSW  10
        { "version", 0 },
 #define HELPSW  11
index 5b59c86..afe4129 100644 (file)
@@ -66,9 +66,9 @@ static struct swit aleqs[] = {
 #define REFILEOPT  1
        { "refile [<switches>] +folder", 0 },
 #define DISPSW  2
-       { "display [<switches>]", 0 },
+       { "display", 0 },
 #define LISTSW  3
-       { "list [<switches>]", 0 },
+       { "list", 0 },
 #define SENDSW  4
        { "send [<switches>]", 0 },
 #define PUSHSW  5
@@ -218,10 +218,13 @@ main(int argc, char **argv)
                switch (smatch(*argp, aleqs)) {
                case DISPSW:
                        /* display the msg being replied to or distributed */
-                       if (msgnam)
-                               showfile(++argp, msgnam);
-                       else
+                       if (msgnam) {
+                               snprintf(buf, sizeof buf, "%s '%s'",
+                                               lproc, msgnam);
+                               system(buf);
+                       } else {
                                advise(NULL, "no alternate message to display");
+                       }
                        break;
 
                case EDITSW:
@@ -235,7 +238,8 @@ main(int argc, char **argv)
 
                case LISTSW:
                        /* display the draft file */
-                       showfile(++argp, drft);
+                       snprintf(buf, sizeof buf, "%s '%s'", lproc, drft);
+                       system(buf);
                        break;
 
                case QUITSW: