X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/bc237bbae1393cacee9d534832a050f1148b0d8b..39ecf70bb:/uip/mhstoresbr.c?ds=sidebyside diff --git a/uip/mhstoresbr.c b/uip/mhstoresbr.c index 5a6f630c..2bc78ceb 100644 --- a/uip/mhstoresbr.c +++ b/uip/mhstoresbr.c @@ -1,6 +1,4 @@ - -/* - * mhstoresbr.c -- routines to save/store the contents of MIME messages +/* mhstoresbr.c -- routines to save/store the contents of MIME messages * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -12,9 +10,13 @@ #include #include #include +#include #include #include #include +#include "mhshowsbr.h" +#include "../sbr/m_maildir.h" +#include "../sbr/m_mktemp.h" enum clobber_policy_t { NMH_CLOBBER_ALWAYS = 0, @@ -343,7 +345,7 @@ store_partial (CT ct, mhstoreinfo_t info) } if (hi == 0) { - advise (NULL, "missing (at least) last part of multipart message"); + inform("missing (at least) last part of multipart message"); return NOTOK; } @@ -366,22 +368,21 @@ store_partial (CT ct, mhstoreinfo_t info) for (ctq = base; *ctq; ctq++) { p = *ctq; pm = (struct partial *) p->c_ctparams; - if (pm->pm_marked != cur) { - if (pm->pm_marked == cur - 1) { - admonish (NULL, - "duplicate part %d of %d part multipart message", - pm->pm_marked, hi); - continue; - } + if (pm->pm_marked == cur) { + cur++; + continue; + } + + if (pm->pm_marked == cur - 1) { + inform("duplicate part %d of %d part multipart message, continuing...", + pm->pm_marked, hi); + continue; + } missing_part: - advise (NULL, - "missing %spart %d of %d part multipart message", - cur != hi ? "(at least) " : "", cur, hi); - goto losing; - } - else - cur++; + inform("missing %spart %d of %d part multipart message", + cur != hi ? "(at least) " : "", cur, hi); + goto losing; } if (hi != --cur) { cur = hi; @@ -584,7 +585,7 @@ store_content (CT ct, CT p, mhstoreinfo_t info) create_folder(m_mailpath(folder), 0, exit); /* Record the folder name */ - ct->c_folder = add (folder, NULL); + ct->c_folder = mh_xstrdup(folder); if (cp[1]) free (folder); @@ -706,7 +707,7 @@ output_content_file (CT ct, int appending) int cc, fd; if (!ct->c_ceopenfnx) { - advise (NULL, "don't know how to decode part %s of message %s", + inform("don't know how to decode part %s of message %s", ct->c_partno, ct->c_file); return NOTOK; } @@ -905,7 +906,7 @@ output_content_folder (char *folder, char *filename) /* Link file into folder */ msgnum = folder_addmsg (&mp, filename, 0, 0, 0, 0, NULL); } else { - advise (NULL, "unable to read folder %s", folder); + inform("unable to read folder %s", folder); return NOTOK; } @@ -950,7 +951,9 @@ parse_format_string (CT ct, char *cp, char *buffer, int buflen, char *dir) * appropriate directory. */ if (*cp != '/' && *cp != '|' && *cp != '!') { - snprintf (bp, buflen, "%s/", dir[1] ? dir : ""); + if (!strcmp(dir, "/")) + dir = ""; /* Don't start with "//". */ + snprintf (bp, buflen, "%s/", dir); len = strlen (bp); bp += len; buflen -= len; @@ -971,7 +974,8 @@ parse_format_string (CT ct, char *cp, char *buffer, int buflen, char *dir) *bp = '\0'; buflen--; continue; - } else { + } + { PM pm; char *s = ""; @@ -998,7 +1002,7 @@ parse_format_string (CT ct, char *cp, char *buffer, int buflen, char *dir) break; case 'p': - /* insert part number withouth leading dot */ + /* insert part number without leading dot */ if (ct->c_partno) strncpy (bp, ct->c_partno, buflen); break; @@ -1175,7 +1179,7 @@ next_version (char *file, enum clobber_policy_t clobber_policy) { default: /* Should never get here. */ - advise (NULL, "will not overwrite %s, invalid clobber policy", buffer); + inform("will not overwrite %s, invalid clobber policy", buffer); free (buffer); return NULL; } @@ -1196,7 +1200,7 @@ next_version (char *file, enum clobber_policy_t clobber_policy) { free (file); if (version >= max_versions) { - advise (NULL, "will not overwrite %s, too many versions", buffer); + inform("will not overwrite %s, too many versions", buffer); free (buffer); buffer = NULL; } @@ -1278,7 +1282,7 @@ clobber_check (char *original_file, mhstoreinfo_t info) { free (prompt); } else { /* Overwrite, that's what nmh used to do. And warn. */ - advise (NULL, "-clobber ask but no tty, so overwrite %s", file); + inform("-clobber ask but no tty, so overwrite %s", file); break; } @@ -1298,7 +1302,7 @@ clobber_check (char *original_file, mhstoreinfo_t info) { file = NULL; ++info->files_not_clobbered; } else { - TrimSuffixC(buf, '\n'); + trim_suffix_c(buf, '\n'); } free (file); @@ -1322,7 +1326,7 @@ clobber_check (char *original_file, mhstoreinfo_t info) { if (stat (file, &st) == OK) { /* Keep count of files that would have been clobbered, and return that as process exit status. */ - advise (NULL, "will not overwrite %s with -clobber never", file); + inform("will not overwrite %s with -clobber never", file); free (file); file = NULL; ++info->files_not_clobbered;