X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/880ff2a4f8f33fede426b21858dda31b58ffd27a..63621a81d16ab743de6b57d47578a9a2c670ad22:/uip/install-mh.c diff --git a/uip/install-mh.c b/uip/install-mh.c index b3271159..e3eab12f 100644 --- a/uip/install-mh.c +++ b/uip/install-mh.c @@ -1,5 +1,4 @@ -/* - * install-mh.c -- initialize the nmh environment of a new user +/* install-mh.c -- initialize the nmh environment of a new user * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -8,7 +7,10 @@ #include /* mh internals */ #include +#include "sbr/m_maildir.h" +#include "sbr/makedir.h" #include /* structure for getpwuid() results */ +#include "sbr/read_line.h" #define INSTALLMH_SWITCHES \ X("auto", 0, AUTOSW) \ @@ -80,11 +82,10 @@ main (int argc, char **argv) * the home directory field in the password file if that's not found. */ - if ((mypath = getenv("HOME")) == (char *)0) { - if ((pw = getpwuid(getuid())) == (struct passwd *)0 || *pw->pw_dir == '\0') + 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; + mypath = pw->pw_dir; } /* @@ -108,15 +109,12 @@ main (int argc, char **argv) if (stat (defpath, &st) != NOTOK) { if (check) done(0); - - else if (autof) + if (autof) adios (NULL, "invocation error"); - else - adios (NULL, "You already have an nmh profile, use an editor to modify it"); + adios (NULL, "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( @@ -131,19 +129,16 @@ main (int argc, char **argv) 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) - printf ("I'm going to create the standard nmh path for you.\n"); + puts("I'm going to create the standard nmh path for you."); else cp = concat ("Do you want the standard nmh path \"", mypath, "/", "Mail\"? ", NULL); @@ -174,16 +169,16 @@ query: if (makedir (pathname) == 0) adios (NULL, "unable to create %s", pathname); } else { - printf ("[Using existing directory]\n"); + puts("[Using existing directory]"); } /* * Add some initial elements to the profile/context list */ - m_defs = (struct node *) mh_xmalloc (sizeof *np); - np = m_defs; - np->n_name = getcpy ("Path"); - np->n_field = getcpy (pathname); + NEW(np); + m_defs = np; + np->n_name = mh_xstrdup("Path"); + np->n_field = mh_xstrdup(pathname); np->n_context = 0; np->n_next = NULL; @@ -221,7 +216,11 @@ query: fclose (out); puts ("\nPlease see the nmh(7) man page for an introduction to nmh.\n"); - print_intro (stdout, FALSE); + print_intro (stdout, false); + + /* Initialize the saved nmh version. The Path profile entry was added + above, that's all this needs. */ + (void) nmh_version_changed (0); done (0); return 1;