]> diplodocus.org Git - nmh/blobdiff - uip/mhstoresbr.c
Alter HasSuffixC()'s char * to be const.
[nmh] / uip / mhstoresbr.c
index ae835fbfdd1267e899a0cd96f18cbdbd271e7a51..9c38a588d2ffbec9fe84e3a3704411830db9fcf5 100644 (file)
@@ -9,7 +9,6 @@
 
 #include <h/mh.h>
 #include <fcntl.h>
 
 #include <h/mh.h>
 #include <fcntl.h>
-#include <h/signals.h>
 #include <h/md5.h>
 #include <h/mts.h>
 #include <h/tws.h>
 #include <h/md5.h>
 #include <h/mts.h>
 #include <h/tws.h>
@@ -43,8 +42,9 @@ struct mhstoreinfo {
 
 mhstoreinfo_t
 mhstoreinfo_create (CT *ct, char *pwd, const char *csw, int asw, int vsw) {
 
 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;
     info->cts = ct;
     info->cwd = pwd;
     info->autosw = asw;
@@ -77,7 +77,7 @@ typedef int (*qsort_comp) (const void *, const void *);
 
 
 /* mhmisc.c */
 
 
 /* mhmisc.c */
-int part_ok (CT, int);
+int part_ok (CT);
 int type_ok (CT, int);
 void flush_errors (void);
 
 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)
      * store any contents.
      */
     if ((cp = context_find (nmhstorage)) && *cp)
-       info->dir = getcpy (cp);
+       info->dir = mh_xstrdup(cp);
     else
        info->dir = getcpy (info->cwd);
 
     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;
 
     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
            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;
     }
 
        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;
     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:
     ct = *ctq++;
     if (store_content (ct, NULL, info) == NOTOK) {
 losing:
-       free ((char *) base);
+       free(base);
        return NOTOK;
     }
 
        return NOTOK;
     }
 
@@ -407,7 +405,7 @@ losing:
            goto losing;
     }
 
            goto losing;
     }
 
-    free ((char *) base);
+    free(base);
     return OK;
 }
 
     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 */
     /* 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;
     } else {
        advise (NULL, "unable to read folder %s", folder);
        return NOTOK;
@@ -1080,8 +1078,7 @@ get_storeproc (CT ct)
                free(cp);
                return;
        }
                free(cp);
                return;
        }
-       if (cp)
-           free(cp);
+        mh_xfree(cp);
     }
 
     /*
     }
 
     /*
@@ -1099,8 +1096,7 @@ get_storeproc (CT ct)
            ct->c_storeproc = add (cp, NULL);
 
     }
            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")) {
 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;
     return NMH_CLOBBER_AUTO;
-  } else if (! strcasecmp (value, "suffix")) {
+  }
+  if (! strcasecmp (value, "suffix")) {
     return NMH_CLOBBER_SUFFIX;
     return NMH_CLOBBER_SUFFIX;
-  } else if (! strcasecmp (value, "ask")) {
+  }
+  if (! strcasecmp (value, "ask")) {
     return NMH_CLOBBER_ASK;
     return NMH_CLOBBER_ASK;
-  } else if (! strcasecmp (value, "never")) {
+  }
+  if (! strcasecmp (value, "never")) {
     return NMH_CLOBBER_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);
           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. */
             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 {
                 file = NULL;
                 ++info->files_not_clobbered;
               } else {
-                char *newline = strchr (buf, '\n');
-                if (newline) {
-                  *newline = '\0';
-                }
+                TrimSuffixC(buf, '\n');
               }
 
               free (file);
               }
 
               free (file);