]> diplodocus.org Git - nmh/blobdiff - uip/mhmisc.c
m_getfld() et al: Replace with m_getfld2(), etc., in many places.
[nmh] / uip / mhmisc.c
index abcf8cc722703485153fec7fe03189ce02e906cc..53406c03826320739b464ccd98db8565cefc60f5 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * mhparse.c -- misc routines to process MIME messages
+/* mhmisc.c -- misc routines to process 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
@@ -11,6 +9,7 @@
 #include <h/mime.h>
 #include <h/mhparse.h>
 #include <h/utils.h>
+#include "../sbr/makedir.h"
 
 extern int debugsw;
 
@@ -31,6 +30,7 @@ static char *errs = NULL;
  * prototypes
  */
 int part_ok (CT);
+int part_exact(CT ct);
 int type_ok (CT, int);
 void content_error (char *, CT, char *, ...);
 void flush_errors (void);
@@ -65,6 +65,23 @@ part_ok (CT ct)
     return 0;
 }
 
+int
+part_exact(CT ct)
+{
+    char **ap;
+
+    if (!ct->c_partno)
+       return 0;
+
+    for (ap = parts; *ap; ap++) {
+        if (!strcmp (*ap, ct->c_partno)) {
+            return 1;
+       }
+    }
+
+    return 0;
+}
+
 
 int
 type_ok (CT ct, int sP)
@@ -104,8 +121,7 @@ is_inline(CT ct)
 
     if (! ct->c_dispo_type || strcasecmp(ct->c_dispo_type, "inline") == 0)
        return 1;
-    else
-       return 0;
+    return 0;
 }
 
 int
@@ -128,13 +144,13 @@ losing_directory:
            }
 
            ep = concat ("Create directory \"", file, "\"? ", NULL);
-           answer = getanswer (ep);
+           answer = read_yes_or_no_if_tty (ep);
            free (ep);
 
            if (!answer)
                goto losing_directory;
            if (!makedir (file)) {
-               advise (NULL, "unable to create directory %s", file);
+               inform("unable to create directory %s", file);
                goto losing_directory;
            }
        }
@@ -200,7 +216,7 @@ content_error (char *what, CT ct, char *fmt, ...)
     i = strlen (invo_name) + 2;
 
     /* Now add content type and subtype */
-    snprintf (bp, buflen, "\n%*.*s(content %s/%s", i, i, "",
+    snprintf (bp, buflen, "\n%*s(content %s/%s", i, "",
        ci->ci_type, ci->ci_subtype);
     len = strlen (bp);
     bp += len;
@@ -233,7 +249,7 @@ content_error (char *what, CT ct, char *fmt, ...)
 
        errs = add (buffer, errs);
     } else {
-       advise (NULL, "%s", buffer);
+       inform("%s", buffer);
     }
 }
 
@@ -243,7 +259,7 @@ flush_errors (void)
 {
     if (errs) {
        fflush (stdout);
-       fprintf (stderr, "%s", errs);
+       fputs(errs, stderr);
        free (errs);
        errs = NULL;
     }