* complete copyright information.
*/
-#include <h/mh.h> /* mh internals */
-#include <h/utils.h>
-#include "../sbr/m_maildir.h"
-#include <pwd.h> /* structure for getpwuid() results */
+#include "h/mh.h"
+#include "sbr/getarguments.h"
+#include "sbr/read_switch.h"
+#include "sbr/concat.h"
+#include "sbr/smatch.h"
+#include "sbr/context_save.h"
+#include "sbr/context_replace.h"
+#include "sbr/readconfig.h"
+#include "sbr/ambigsw.h"
+#include "sbr/path.h"
+#include "sbr/print_version.h"
+#include "sbr/print_help.h"
+#include "sbr/error.h"
+#include "h/done.h"
+#include "h/utils.h"
+#include "sbr/m_maildir.h"
+#include "sbr/makedir.h"
+#include <pwd.h>
+#include "sbr/read_line.h"
#define INSTALLMH_SWITCHES \
X("auto", 0, AUTOSW) \
int
main (int argc, char **argv)
{
- int autof = 0;
+ bool autof = false;
char *cp, buf[BUFSIZ];
const char *pathname;
char *dp, **arguments, **argp;
struct passwd *pw;
struct stat st;
FILE *in, *out;
- int check;
+ bool 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;
- check = 0;
+ check = false;
while ((dp = *argp++)) {
if (*dp == '-') {
ambigsw (dp, switches);
done (1);
case UNKWNSW:
- adios (NULL, "-%s unknown\n", dp);
+ die("-%s unknown\n", dp);
case HELPSW:
snprintf (buf, sizeof(buf), "%s [switches]", invo_name);
done (0);
case AUTOSW:
- autof++;
+ autof = true;
continue;
case CHECKSW:
- check = 1;
+ check = true;
continue;
}
} else {
- adios (NULL, "%s is invalid argument", dp);
+ die("%s is invalid argument", dp);
}
}
if ((mypath = getenv("HOME")) == NULL) {
if ((pw = getpwuid(getuid())) == NULL || *pw->pw_dir == '\0')
- adios(NULL, "cannot determine your home directory");
- else
- mypath = pw->pw_dir;
+ die("cannot determine your home directory");
+ mypath = pw->pw_dir;
}
/*
if (stat (defpath, &st) != NOTOK) {
if (check)
done(0);
-
- else if (autof)
- adios (NULL, "invocation error");
- else
- adios (NULL, "You already have an nmh profile, use an editor to modify it");
+ if (autof)
+ die("invocation error");
+ die("You already have an nmh profile, use an editor to modify it");
}
- else if (check) {
+ if (check)
done(1);
- }
if (!autof && read_switch ("Do you want help? ", anoyes)) {
(void)printf(
cp = concat (mypath, "/", "Mail", NULL);
if (stat (cp, &st) != NOTOK) {
- if (S_ISDIR(st.st_mode)) {
- cp = concat ("You already have the standard nmh directory \"",
- cp, "\".\nDo you want to use it for nmh? ", NULL);
- if (read_switch (cp, anoyes))
- pathname = "Mail";
- else
- goto query;
- } else {
+ if (!S_ISDIR(st.st_mode))
goto query;
- }
+ cp = concat ("You already have the standard nmh directory \"",
+ cp, "\".\nDo you want to use it for nmh? ", NULL);
+ if (!read_switch (cp, anoyes))
+ goto query;
+ pathname = "Mail";
} else {
if (autof)
puts("I'm going to create the standard nmh path for you.");
pathname = read_line ();
if (pathname == NULL) done (1);
} else {
- printf ("What is the whole path? /");
+ fputs("What is the whole path? /", stdout);
pathname = read_line ();
if (pathname == NULL) done (1);
pathname = concat ("/", pathname, NULL);
cp = concat ("\"", pathname, "\" doesn't exist; Create it? ", NULL);
if (autof || read_switch (cp, anoyes))
if (makedir (pathname) == 0)
- adios (NULL, "unable to create %s", pathname);
+ die("unable to create %s", pathname);
} else {
puts("[Using existing directory]");
}
fclose (in);
}
- ctxpath = getcpy (m_maildir (context = "context"));
+ ctxpath = mh_xstrdup(m_maildir(context = "context"));
/* Initialize current folder to default */
context_replace (pfolder, defaultfolder);
}
fclose (out);
- puts ("\nPlease see the nmh(7) man page for an introduction to nmh.\n");
- print_intro (stdout, FALSE);
+ puts ("\nPlease see nmh(7) for an introduction to nmh.\n");
+ print_intro (stdout, false);
/* Initialize the saved nmh version. The Path profile entry was added
above, that's all this needs. */