From: David Levine Date: Thu, 29 Sep 2016 15:40:10 +0000 (-0400) Subject: Instead of relying on invo_name to decide whether to call X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/a30e7865b46712fe346d8a91894ab68aac664901?ds=sidebyside Instead of relying on invo_name to decide whether to call nmh_version_changed(), use a read_context setting of 1. --- diff --git a/h/prototypes.h b/h/prototypes.h index a44ccbf5..5252a0a0 100644 --- a/h/prototypes.h +++ b/h/prototypes.h @@ -497,8 +497,18 @@ void init_credentials_file (); int nmh_get_credentials (char *, char *, int, nmh_creds_t); /* - * temporary file management + * program initialization + * + * argv0: argv[0], presumably the program name + * read_context: 0: don't read context + * 1: read context, check nmh version, and issue warning message + * if non-existent or old + * 2: read context, don't check nmh version */ int nmh_init(const char *argv0, int read_context); + +/* + * temporary file management + */ int m_unlink(const char *); void unregister_for_removal(int remove_files); diff --git a/sbr/utils.c b/sbr/utils.c index 6fc6f53e..f103167c 100644 --- a/sbr/utils.c +++ b/sbr/utils.c @@ -371,27 +371,9 @@ nmh_init(const char *argv0, int read_context) { /* Check to see if the user is running a different version of nmh than they had last run, and notify them if so. But only if - they seem to be running an interactive program. */ - if (isatty (fileno (stdin)) && isatty (fileno (stdout)) && - isatty (fileno (stderr)) && - strcmp (invo_name, "ap") && - strcmp (invo_name, "dp") && - strcmp (invo_name, "fmtdump") && - strcmp (invo_name, "install-mh") && - strcmp (invo_name, "mhbuild") && - strcmp (invo_name, "mhfixmsg") && - strcmp (invo_name, "mhl") && - strcmp (invo_name, "mhparam") && - strcmp (invo_name, "mhpath") && - strcmp (invo_name, "mkstemp") && - strcmp (invo_name, "post") && - strcmp (invo_name, "prompter") && - strncmp (invo_name, "rcv", 3) && - strcmp (invo_name, "slocal") && - strcmp (invo_name, "viamail") && - strcmp (invo_name, "whatnow") && - strcmp (invo_name, "whom")) { - + read_context was set to a value to enable this. */ + if (read_context == 1 && isatty (fileno (stdin)) && + isatty (fileno (stdout)) && isatty (fileno (stderr))) { if (nmh_version_changed ()) { printf ("===================================================" "====================\n"); diff --git a/test/install-mh/test-version-check b/test/install-mh/test-version-check index f2fbe6c5..3dfef043 100755 --- a/test/install-mh/test-version-check +++ b/test/install-mh/test-version-check @@ -22,13 +22,22 @@ require_prog script actual="$MH_TEST_DIR/test-version-check$$.actual" context="${MH_TEST_DIR}"/Mail/context - -start_test 'with welcome message' # Removing Version will trigger the welcome message. grep -v Version "$context" > "$context.NEW" mv -f "$context.NEW" "$context" -# The will command wait for the user to hit return. script seems to do what -# we want, continue, when run in the background. + + +start_test 'mhparam skips the welcome message' +# The command will wait for the user to hit return. script seems to do what +# we want by not waiting when run in the background. +script -c 'mhparam path last' -f -q "$actual" >/dev/null & +wait $! +grep 'Welcome to nmh version ' "$actual" >/dev/null && false +rm "$actual" +finish_test + + +start_test 'with welcome message' script -c 'pick last' -f -q "$actual" >/dev/null & wait $! grep 'Welcome to nmh version ' "$actual" >/dev/null diff --git a/uip/ap.c b/uip/ap.c index 9250b08a..0b57e652 100644 --- a/uip/ap.c +++ b/uip/ap.c @@ -53,7 +53,7 @@ main (int argc, char **argv) char buf[BUFSIZ], **argp; char **arguments, *addrs[NADDRS]; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } mts_init (); arguments = getarguments (invo_name, argc, argv, 1); diff --git a/uip/dp.c b/uip/dp.c index cf8f9b14..097b961d 100644 --- a/uip/dp.c +++ b/uip/dp.c @@ -50,7 +50,7 @@ main (int argc, char **argv) char buf[BUFSIZ], **argp, **arguments; char *dates[NDATES]; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/fmtdump.c b/uip/fmtdump.c index a45ea801..3cf18d35 100644 --- a/uip/fmtdump.c +++ b/uip/fmtdump.c @@ -51,7 +51,7 @@ main (int argc, char **argv) char buf[BUFSIZ], *nfs, **argp, **arguments; struct format *fmt; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/mhbuild.c b/uip/mhbuild.c index 87252a7c..b111df0c 100644 --- a/uip/mhbuild.c +++ b/uip/mhbuild.c @@ -114,7 +114,7 @@ main (int argc, char **argv) int header_encoding = CE_UNKNOWN; size_t n; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } done=unlink_done; diff --git a/uip/mhfixmsg.c b/uip/mhfixmsg.c index 4ececa5d..4262276d 100644 --- a/uip/mhfixmsg.c +++ b/uip/mhfixmsg.c @@ -148,7 +148,7 @@ main (int argc, char **argv) { fx.lf_line_endings = 0; fx.textcharset = NULL; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } done = freects_done; diff --git a/uip/mhical.c b/uip/mhical.c index 324d4b63..70f96dd2 100644 --- a/uip/mhical.c +++ b/uip/mhical.c @@ -76,7 +76,7 @@ main (int argc, char *argv[]) { icaldebug = 0; /* Global provided by bison (with name-prefix "ical"). */ - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/mhl.c b/uip/mhl.c index 652fb11b..e945f322 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -13,7 +13,7 @@ int main (int argc, char **argv) { - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } done (mhl (argc, argv)); return 1; diff --git a/uip/mhparam.c b/uip/mhparam.c index 3b259e7f..a2a7489a 100644 --- a/uip/mhparam.c +++ b/uip/mhparam.c @@ -145,7 +145,7 @@ main(int argc, char **argv) char *cp, buf[BUFSIZ], **argp; char **arguments, *comps[MAXARGS]; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/mhpath.c b/uip/mhpath.c index b9506d73..9ab94392 100644 --- a/uip/mhpath.c +++ b/uip/mhpath.c @@ -32,7 +32,7 @@ main(int argc, char **argv) struct msgs_array msgs = { 0, 0, NULL }; struct msgs *mp; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/mkstemp.c b/uip/mkstemp.c index 8139fec7..259c3edd 100644 --- a/uip/mkstemp.c +++ b/uip/mkstemp.c @@ -150,7 +150,7 @@ process_args(int argc, char **argv, const char **directory, NMH_UNUSED(suffix); # endif /* ! HAVE_MKSTEMPS */ - if (nmh_init(argv[0], 1)) { done(NOTOK); } + if (nmh_init(argv[0], 2)) { done(NOTOK); } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/prompter.c b/uip/prompter.c index 58347d47..f5332e46 100644 --- a/uip/prompter.c +++ b/uip/prompter.c @@ -78,7 +78,7 @@ main (int argc, char **argv) char *tmpfil; m_getfld_state_t gstate = 0; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; diff --git a/uip/rcvdist.c b/uip/rcvdist.c index 7e9ae010..29b341ca 100644 --- a/uip/rcvdist.c +++ b/uip/rcvdist.c @@ -48,7 +48,7 @@ main (int argc, char **argv) FILE *fp; char *tfile = NULL; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } done=unlink_done; diff --git a/uip/rcvpack.c b/uip/rcvpack.c index 2553e823..df504a86 100644 --- a/uip/rcvpack.c +++ b/uip/rcvpack.c @@ -40,7 +40,7 @@ main (int argc, char **argv) char *cp, *file = NULL, buf[BUFSIZ]; char **argp, **arguments; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } mts_init (); arguments = getarguments (invo_name, argc, argv, 1); diff --git a/uip/rcvstore.c b/uip/rcvstore.c index a7d3a9e9..8d11e005 100644 --- a/uip/rcvstore.c +++ b/uip/rcvstore.c @@ -54,7 +54,7 @@ main (int argc, char **argv) struct msgs *mp; struct stat st; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } done=unlink_done; diff --git a/uip/rcvtty.c b/uip/rcvtty.c index ab674f0d..d32a1baa 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -82,7 +82,7 @@ main (int argc, char **argv) char **argp, **arguments, *vec[MAXARGS]; struct utmpx *utp; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } mts_init (); arguments = getarguments (invo_name, argc, argv, 1); diff --git a/uip/viamail.c b/uip/viamail.c index f80980d6..1514ef88 100644 --- a/uip/viamail.c +++ b/uip/viamail.c @@ -56,7 +56,7 @@ main (int argc, char **argv) char *cp, buf[BUFSIZ]; char **argp, **arguments; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 0); argp = arguments; diff --git a/uip/whatnow.c b/uip/whatnow.c index 031ff3c8..9f305907 100644 --- a/uip/whatnow.c +++ b/uip/whatnow.c @@ -13,7 +13,7 @@ int main (int argc, char **argv) { - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } return WhatNow (argc, argv); } diff --git a/uip/whom.c b/uip/whom.c index b1e8b1ed..688950c9 100644 --- a/uip/whom.c +++ b/uip/whom.c @@ -63,7 +63,7 @@ main (int argc, char **argv) char *msg = NULL, **ap, **argp, backup[BUFSIZ]; char buf[BUFSIZ], **arguments, *vec[MAXARGS]; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments;