* 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
+ * read_context - whether to read the context
+ * check_version - if read_context, whether to check the version, and issue warning message if non-existent or old
*/
-int nmh_init(const char *argv0, int read_context);
+int nmh_init(const char *argv0, bool read_context, bool check_version);
/*
* Compares prior version of nmh with current version. Returns 1
}
-int
-nmh_init(const char *argv0, int read_context) {
+int nmh_init(const char *argv0, bool read_context, bool check_version)
+{
int status = OK;
char *locale;
context_read();
- if (read_context != 1 ||
+ if (!check_version ||
((cp = context_find ("Welcome")) && strcasecmp (cp, "disable") == 0)) {
allow_version_check = 0;
} else if ((cp = getenv ("MHCONTEXT")) != NULL && *cp != '\0') {
/* Check to see if the user is running a different (or older, if
specified) version of nmh than they had run before, and notify them
- if so. But only if read_context was set to a value to enable. */
+ if so. */
if (allow_version_check && isatty (fileno (stdin)) &&
isatty (fileno (stdout)) && isatty (fileno (stderr))) {
if (nmh_version_changed (check_older_version)) {
char **vec = mh_xmalloc (argc * sizeof (char *)), **arguments;
struct aka *ak;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
bool list; /* list header elements if set */
int number = 0; /* delete specific number of like elements if set */
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char buf[BUFSIZ], **argp;
char *addrs[NADDRS + 1]; /* Includes terminating NULL. */
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
mts_init ();
struct smsg *smsgs;
struct msgs *mp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct format *fmt;
struct stat st;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs *mp = NULL;
struct stat st;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char buf[BUFSIZ], **argp;
char *dates[NDATES + 1]; /* Includes terminating NULL. */
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
argp = getarguments (invo_name, argc, argv, 1);
while ((cp = *argp++)) {
char **arguments;
char buf[BUFSIZ];
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
/*
* If program was invoked with name ending
char buf[BUFSIZ], *nfs, **argp, **arguments;
struct format *fmt;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
int dat[5];
struct fmt_callbacks cb, *cbp = NULL;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char *cp, *dp, *msg = NULL, *argfolder = NULL;
char **ap, **argp, buf[BUFSIZ], **arguments;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
/*
* If program was invoked with name ending
struct msgs_array msgs = { 0, 0, NULL };
int buildsw = 0;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
size_t len;
struct timeval tv_start, tv_connect, tv_auth;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
SAVEGROUPPRIVS();
TRYDROPGROUPPRIVS();
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
FILE *in, *out;
int check;
- if (nmh_init(argv[0], 0 /* use context_foil() */ )) { return 1; }
+ if (nmh_init(argv[0], false, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 0);
argp = arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
int header_encoding = CE_UNKNOWN;
size_t n;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
fx.lf_line_endings = 0;
fx.textcharset = NULL;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
icaldebug = 0; /* Global provided by bison (with name-prefix "ical"). */
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
int
main (int argc, char **argv)
{
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
done (mhl (argc, argv));
return 1;
struct msgs *mp = NULL;
CT ct, *ctp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(freects_done);
const char *user = NULL, *saslmech = NULL, *svc = NULL, *browser = NULL;
int snoop = 0;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
FILE *fp;
mhstoreinfo_t info;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(freects_done);
char *cp, buf[BUFSIZ], **argp;
char **arguments, *comps[MAXARGS];
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
CT ct, *ctp;
FILE *fp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(freects_done);
int files_not_clobbered;
mhstoreinfo_t info;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(freects_done);
NMH_UNUSED(suffix);
# endif /* ! HAVE_MKSTEMPS */
- if (nmh_init(argv[0], 2)) { done(1); }
+ if (nmh_init(argv[0], true, false)) { done(1); }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char **argp, **arguments, *vec[MAXVEC];
struct passwd *pw;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
mts_init ();
char *unseen;
struct node *folder;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs *mp;
struct stat st;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(mbxclose_done);
int reverse = 0;
int start, end, inc;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
set_done(putzero_done);
FILE *in, *out;
m_getfld_state_t gstate;
- if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
+ if (nmh_init(argv[0], false, false)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 0);
char *tmpfil;
m_getfld_state_t gstate;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
FILE *fp;
char *tfile = NULL;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
set_done(unlink_done);
char *cp, *file = NULL, buf[BUFSIZ];
char **argp, **arguments;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
struct msgs *mp;
struct stat st;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
set_done(unlink_done);
char **argp, **arguments, *vec[MAXARGS];
struct utmpx *utp;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
int buildsw = 0;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char buf[BUFSIZ], **argp, **arguments;
char *fp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs *mp;
FILE *in;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
int snoop = 0;
char *auth_svc = NULL;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs_array vec = { 0, 0, NULL }, non_mhl_vec = { 0, 0, NULL };
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
if (!strcasecmp (invo_name, "next")) {
mode = NEXT;
char mailbox[BUFSIZ], tmpfil[BUFSIZ];
char **argp, **arguments;
- if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
+ if (nmh_init(argv[0], false, false)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 0);
struct smsg **dlist;
int checksw = 0;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
char *cp, buf[BUFSIZ];
char **argp, **arguments;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 0);
argp = arguments;
int
main (int argc, char **argv)
{
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
return WhatNow (argc, argv);
}
char *msg = NULL, **ap, **argp, backup[BUFSIZ];
char buf[BUFSIZ], **arguments, *vec[MAXARGS];
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;