X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/49976f25a761e67a05cc493cc7ab88863a587e30..afaab789:/uip/inc.c?ds=sidebyside diff --git a/uip/inc.c b/uip/inc.c index 1973a6af..b44e89e5 100644 --- a/uip/inc.c +++ b/uip/inc.c @@ -1,6 +1,4 @@ - -/* - * inc.c -- incorporate messages from a maildrop into a folder +/* inc.c -- incorporate messages from a maildrop into a folder * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -42,6 +40,9 @@ #include #include #include +#include "../sbr/lock_file.h" +#include "../sbr/m_maildir.h" +#include "../sbr/m_mktemp.h" #ifndef TLS_SUPPORT # define TLSminc(a) (a) @@ -186,10 +187,12 @@ maildir_srt(const void *va, const void *vb) int main (int argc, char **argv) { - int chgflag = 1, trnflag = 1; - int noisy = 1, width = -1; + bool chgflag; + int trnflag = 1; + bool noisy; + int width = -1; int hghnum = 0, msgnum = 0; - int sasl = 0, tls = 0, noverify = 1; + bool sasl, tls, noverify; int incerr = 0; /* <0 if inc hits an error which means it should not truncate mailspool */ char *cp, *maildir = NULL, *folder = NULL; char *format = NULL, *form = NULL; @@ -234,6 +237,8 @@ main (int argc, char **argv) if (pophost && *pophost) host = pophost; + sasl = tls = false; + chgflag = noisy = noverify = true; while ((cp = *argp++)) { if (*cp == '-') { switch (smatch (++cp, switches)) { @@ -261,10 +266,10 @@ main (int argc, char **argv) continue; case CHGSW: - chgflag++; + chgflag = true; continue; case NCHGSW: - chgflag = 0; + chgflag = false; continue; /* @@ -295,10 +300,10 @@ main (int argc, char **argv) continue; case SILSW: - noisy = 0; + noisy = false; continue; case NSILSW: - noisy++; + noisy = true; continue; case FORMSW: @@ -346,10 +351,10 @@ main (int argc, char **argv) continue; case SASLSW: - sasl++; + sasl = true; continue; case NOSASLSW: - sasl = 0; + sasl = false; continue; case SASLMECHSW: @@ -358,19 +363,19 @@ main (int argc, char **argv) continue; case INITTLSSW: - tls++; + tls = true; continue; case NOTLSSW: - tls = 0; + tls = false; continue; case CERTVERSW: - noverify = 0; + noverify = false; continue; case NOCERTVERSW: - noverify++; + noverify = true; continue; case AUTHSERVICESW: @@ -404,7 +409,7 @@ main (int argc, char **argv) if (host && !*host) host = NULL; - /* guarantee dropping group priveleges; we might not have done so earlier */ + /* guarantee dropping group privileges; we might not have done so earlier */ DROPGROUPPRIVS(); /* @@ -524,9 +529,7 @@ main (int argc, char **argv) qsort (Maildir, num_maildir_entries, sizeof(*Maildir), maildir_srt); } - if ((cp = strdup(newmail)) == NULL) - adios (NULL, "error allocating memory to copy newmail"); - + cp = mh_xstrdup(newmail); newmail = cp; } @@ -539,9 +542,7 @@ main (int argc, char **argv) if (!folder) folder = getfolder (0); maildir = m_maildir (folder); - - if ((maildir_copy = strdup(maildir)) == NULL) - adios (maildir, "error allocating memory to copy maildir"); + maildir_copy = mh_xstrdup(maildir); if (!folder_exists(maildir)) { /* If the folder doesn't exist, and we're given the -silent flag, @@ -591,7 +592,7 @@ go_to_it: if (audfile) { int i; if ((i = stat (audfile, &st)) == NOTOK) - advise (NULL, "Creating Receive-Audit: %s", audfile); + inform("Creating Receive-Audit: %s", audfile); if ((aud = fopen (audfile, "a")) == NULL) adios (audfile, "unable to append to"); else if (i == NOTOK) @@ -766,15 +767,15 @@ go_to_it: case SCNERR: if (aud) fputs ("inc aborted!\n", aud); - advise (NULL, "aborted!"); /* doesn't clean up locks! */ + inform("aborted!"); /* doesn't clean up locks! */ break; case SCNNUM: - advise (NULL, "BUG in %s, number out of range", invo_name); + inform("BUG in %s, number out of range", invo_name); break; default: - advise (NULL, "BUG in %s, scan() botch (%d)", invo_name, incerr); + inform("BUG in %s, scan() botch (%d)", invo_name, incerr); break; case SCNMSG: @@ -921,7 +922,7 @@ go_to_it: if (inc_type == INC_FILE && Maildir == NULL) { if (trnflag) { if (stat (newmail, &st) != NOTOK && s1.st_mtime != st.st_mtime) - advise (NULL, "new messages have arrived!\007"); + inform("new messages have arrived!\007"); else { int newfd; if ((newfd = creat (newmail, 0600)) != NOTOK) @@ -937,7 +938,7 @@ go_to_it: } if (msgnum == hghnum) { - admonish (NULL, "no messages incorporated"); + inform("no messages incorporated, continuing..."); } else { /* * Lock the sequence file now, and loop to set the right flags @@ -950,7 +951,7 @@ go_to_it: context_replace (pfolder, folder); /* update current folder */ if ((mp2 = folder_read(folder, 1)) == NULL) { - admonish(NULL, "Unable to reread folder %s", folder); + inform("Unable to reread folder %s, continuing...", folder); goto skip; } @@ -960,7 +961,7 @@ go_to_it: if (msgnum >= mp2->hghoff && !(mp2 = folder_realloc (mp2, mp2->lowoff, msgnum + 1))) { - advise (NULL, "unable to reallocate folder storage"); + inform("unable to reallocate folder storage"); goto skip; } @@ -1004,7 +1005,7 @@ skip: } -static void +static void NORETURN inc_done (int status) { done = exit;