X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhmisc.c;h=fddd552291ebecc8c4e7817072998470354cf738;hp=2a1672e6e85075744d05137acccafc6d5937de9e;hb=d8916ff5d389de5ab225cd6f40aeda1b285d0f28;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68 diff --git a/uip/mhmisc.c b/uip/mhmisc.c index 2a1672e..fddd552 100644 --- a/uip/mhmisc.c +++ b/uip/mhmisc.c @@ -13,8 +13,8 @@ #include #include #include +#include -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;