]> diplodocus.org Git - nmh/blobdiff - uip/mhmisc.c
Return type of (*done)() changed to void. default_done() replaced by
[nmh] / uip / mhmisc.c
index 2a1672e6e85075744d05137acccafc6d5937de9e..fddd552291ebecc8c4e7817072998470354cf738 100644 (file)
@@ -13,8 +13,8 @@
 #include <errno.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
+#include <h/utils.h>
 
-extern int errno;
 extern int debugsw;
 
 /*
@@ -46,13 +46,17 @@ int
 part_ok (CT ct, int sP)
 {
     char **ap;
+    int len;
 
     if (npart == 0 || (ct->c_type == CT_MULTIPART && (sP || ct->c_subtype)))
        return 1;
 
-    for (ap = parts; *ap; ap++)
-       if (!strcmp (*ap, ct->c_partno))
-           return 1;
+    for (ap = parts; *ap; ap++) {
+        len = strlen(*ap);
+        if (!strncmp (*ap, ct->c_partno, len) &&
+                (!ct->c_partno[len] || ct->c_partno[len] == '.' ))
+            return 1;
+    }
 
     return 0;
 }
@@ -70,7 +74,7 @@ type_ok (CT ct, int sP)
 
     snprintf (buffer, sizeof(buffer), "%s/%s", ci->ci_type, ci->ci_subtype);
     for (ap = types; *ap; ap++)
-       if (!strcasecmp (*ap, ci->ci_type) || !strcasecmp (*ap, buffer))
+       if (!mh_strcasecmp (*ap, ci->ci_type) || !mh_strcasecmp (*ap, buffer))
            return 1;
 
     return 0;