X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/d6b2ae5fa68b9a82ffc006c233aef64c5cdb3bd2..7711f3fc00259e55f630cfe6104eff3083dc9d77:/uip/mhlist.c diff --git a/uip/mhlist.c b/uip/mhlist.c index 91b09841..34655236 100644 --- a/uip/mhlist.c +++ b/uip/mhlist.c @@ -32,6 +32,7 @@ X("file file", 0, FILESW) \ X("part number", 0, PARTSW) \ X("type content", 0, TYPESW) \ + X("prefer content", 0, PREFERSW) \ X("rcache policy", 0, RCACHESW) \ X("wcache policy", 0, WCACHESW) \ X("changecur", 0, CHGSW) \ @@ -62,6 +63,11 @@ extern char *parts[NPARTS + 1]; extern char *types[NTYPES + 1]; extern int userrs; +/* mhparse.c */ +extern char *preferred_types[]; +extern char *preferred_subtypes[]; +extern int npreferred; + /* * This is currently needed to keep mhparse happy. * This needs to be changed. @@ -74,7 +80,7 @@ int debugsw = 0; CT parse_mime (char *); /* mhmisc.c */ -int part_ok (CT, int); +int part_ok (CT); int type_ok (CT, int); void flush_errors (void); @@ -186,6 +192,18 @@ do_cache: types[ntype++] = cp; continue; + case PREFERSW: + if (!(cp = *argp++) || *cp == '-') + adios (NULL, "missing argument to %s", argp[-2]); + if (npreferred >= NPREFS) + adios (NULL, "too many preferred types (starting with %s), %d max", + cp, NPREFS); + preferred_types[npreferred] = cp; + cp = strchr(cp, '/'); + if (cp) *cp++ = '\0'; + preferred_subtypes[npreferred++] = cp; + continue; + case FILESW: if (!(cp = *argp++) || (*cp == '-' && cp[1])) adios (NULL, "missing argument to %s", argp[-2]);