X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/aeceb648abeaf47ad7cffcbe29f7044a9445bb8d..ef1ba39e8dae81091b6c3e73e72825ef6edea3c6:/uip/mhstoresbr.c diff --git a/uip/mhstoresbr.c b/uip/mhstoresbr.c index ae835fbf..9c38a588 100644 --- a/uip/mhstoresbr.c +++ b/uip/mhstoresbr.c @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -43,8 +42,9 @@ struct mhstoreinfo { mhstoreinfo_t mhstoreinfo_create (CT *ct, char *pwd, const char *csw, int asw, int vsw) { - mhstoreinfo_t info = mh_xmalloc (sizeof *info); + mhstoreinfo_t info; + NEW(info); info->cts = ct; info->cwd = pwd; info->autosw = asw; @@ -77,7 +77,7 @@ typedef int (*qsort_comp) (const void *, const void *); /* mhmisc.c */ -int part_ok (CT, int); +int part_ok (CT); int type_ok (CT, int); void flush_errors (void); @@ -116,7 +116,7 @@ store_all_messages (mhstoreinfo_t info) * store any contents. */ if ((cp = context_find (nmhstorage)) && *cp) - info->dir = getcpy (cp); + info->dir = mh_xstrdup(cp); else info->dir = getcpy (info->cwd); @@ -287,7 +287,7 @@ store_multi (CT ct, mhstoreinfo_t info) for (part = m->mp_parts; part; part = part->mp_next) { CT p = part->mp_part; - if (part_ok (p, 1) && type_ok (p, 1)) { + if (part_ok (p) && type_ok (p, 1)) { if (ct->c_storage) { /* Support mhstore -outfile. The MIME parser doesn't load c_storage, so we know that p->c_storage is @@ -345,9 +345,7 @@ store_partial (CT ct, mhstoreinfo_t info) return NOTOK; } - if ((base = (CT *) mh_xcalloc ((size_t) (i + 1), sizeof(*base))) == NULL) - adios (NULL, "out of memory"); - + base = mh_xcalloc(i + 1, sizeof *base); ctq = base; for (ctp = info->cts; *ctp; ctp++) { p = *ctp; @@ -397,7 +395,7 @@ missing_part: ct = *ctq++; if (store_content (ct, NULL, info) == NOTOK) { losing: - free ((char *) base); + free(base); return NOTOK; } @@ -407,7 +405,7 @@ losing: goto losing; } - free ((char *) base); + free(base); return OK; } @@ -908,7 +906,7 @@ output_content_folder (char *folder, char *filename) /* Read the folder. */ if ((mp = folder_read (folder, 0))) { /* Link file into folder */ - msgnum = folder_addmsg (&mp, filename, 0, 0, 0, 0, (char *)0); + msgnum = folder_addmsg (&mp, filename, 0, 0, 0, 0, NULL); } else { advise (NULL, "unable to read folder %s", folder); return NOTOK; @@ -1080,8 +1078,7 @@ get_storeproc (CT ct) free(cp); return; } - if (cp) - free(cp); + mh_xfree(cp); } /* @@ -1099,8 +1096,7 @@ get_storeproc (CT ct) ct->c_storeproc = add (cp, NULL); } - if (cp) - free(cp); + mh_xfree(cp); } @@ -1140,19 +1136,22 @@ static enum clobber_policy_t clobber_policy (const char *value) { if (value == NULL || ! strcasecmp (value, "always")) { - } else if (! strcasecmp (value, "auto")) { + return NMH_CLOBBER_ALWAYS; + } + if (! strcasecmp (value, "auto")) { return NMH_CLOBBER_AUTO; - } else if (! strcasecmp (value, "suffix")) { + } + if (! strcasecmp (value, "suffix")) { return NMH_CLOBBER_SUFFIX; - } else if (! strcasecmp (value, "ask")) { + } + if (! strcasecmp (value, "ask")) { return NMH_CLOBBER_ASK; - } else if (! strcasecmp (value, "never")) { + } + if (! strcasecmp (value, "never")) { return NMH_CLOBBER_NEVER; - } else { - adios (NULL, "invalid argument, %s, to clobber", value); } - return NMH_CLOBBER_ALWAYS; + adios (NULL, "invalid argument, %s, to clobber", value); } @@ -1286,7 +1285,7 @@ clobber_check (char *original_file, mhstoreinfo_t info) { if (isatty (fileno (stdin))) { char *prompt = concat ("Overwrite \"", file, "\" [y/n/rename]? ", NULL); - ans = getans (prompt, answer); + ans = read_switch_multiword (prompt, answer); free (prompt); } else { /* Overwrite, that's what nmh used to do. And warn. */ @@ -1310,10 +1309,7 @@ clobber_check (char *original_file, mhstoreinfo_t info) { file = NULL; ++info->files_not_clobbered; } else { - char *newline = strchr (buf, '\n'); - if (newline) { - *newline = '\0'; - } + TrimSuffixC(buf, '\n'); } free (file);