]> diplodocus.org Git - nmh/blobdiff - uip/mhstore.c
pending-release-notes: add mhshow's "-prefer", and mh-format's %(kibi/kilo)
[nmh] / uip / mhstore.c
index 17dcc01db0e6db73dc7db578808d1b49a49e6dfb..a3481034e6a01f4f37b81b408646727a990a48ec 100644 (file)
@@ -29,6 +29,7 @@
     X("outfile outfile", 0, OUTFILESW) \
     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("version", 0, VERSIONSW) \
@@ -58,6 +59,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;
+
 #define        quitser pipeser
 
 /* mhparse.c */
@@ -65,7 +71,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);
 
@@ -175,6 +181,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]);