]> diplodocus.org Git - nmh/commitdiff
Replace parallel MIME-preference arrays with struct array.
authorRalph Corderoy <ralph@inputplus.co.uk>
Sun, 10 Sep 2017 11:28:51 +0000 (12:28 +0100)
committerRalph Corderoy <ralph@inputplus.co.uk>
Sun, 10 Sep 2017 11:28:51 +0000 (12:28 +0100)
New array of struct has `type' and `subtype' members, replacing the old
preferred_types[] and preferred_subtypes[] arrays.

h/mhparse.h
uip/mhlist.c
uip/mhparse.c
uip/mhshow.c
uip/mhstore.c

index 9ed2b3b62f0d794eac2e284ffc2fd73422940878..3b4021f5ddf2ceedb4550d48144c535a2e9bf041 100644 (file)
@@ -527,6 +527,9 @@ extern bool suppress_extraneous_trailing_semicolon_warning;
 extern bool suppress_multiple_mime_version_warning;
 
 #define        NPREFS  20
-extern char *preferred_types[NPREFS];
-extern char *preferred_subtypes[NPREFS];
+typedef struct {
+    char *type;
+    char *subtype;
+} mime_type_subtype;
+extern mime_type_subtype mime_preference[NPREFS];
 extern int npreferred;
index 26045062fcd2f099a3b8608ec2c12966fd8dca10..93e2ea0ee75d8a9d1de3264321c6ee5251604cfb 100644 (file)
@@ -169,10 +169,10 @@ do_cache:
                if (npreferred >= NPREFS)
                    adios (NULL, "too many preferred types (starting with %s), %d max",
                           cp, NPREFS);
-               preferred_types[npreferred] = cp;
+                mime_preference[npreferred].type = cp;
                cp = strchr(cp, '/');
                if (cp) *cp++ = '\0';
-               preferred_subtypes[npreferred++] = cp;
+               mime_preference[npreferred++].subtype = cp;
                continue;
 
            case NPREFERSW:
index c42d1c32cab8ea7bf005b03ea11721ed433929bc..2e1beb96cc8d9c800b1c05946b7e3f50a0661101 100644 (file)
@@ -46,8 +46,7 @@ bool suppress_extraneous_trailing_semicolon_warning;
 bool suppress_multiple_mime_version_warning = true;
 
 /* list of preferred type/subtype pairs, for -prefer */
-char *preferred_types[NPREFS];
-char *preferred_subtypes[NPREFS];
+mime_type_subtype mime_preference[NPREFS];
 int npreferred;
 
 
@@ -1317,7 +1316,7 @@ reverse_parts (CT ct)
 }
 
 static void
-move_preferred_part (CT ct, char *type, char *subtype)
+move_preferred_part(CT ct, mime_type_subtype *pref)
 {
     struct multipart *m = (struct multipart *) ct->c_ctparams;
     struct part *part, *prev, *head, *nhead, *ntail;
@@ -1341,8 +1340,9 @@ move_preferred_part (CT ct, char *type, char *subtype)
     part = head->mp_next;
     while (part != NULL) {
        ci = &part->mp_part->c_ctinfo;
-       if (!strcasecmp(ci->ci_type, type) &&
-               (!subtype || !strcasecmp(ci->ci_subtype, subtype))) {
+       if (!strcasecmp(ci->ci_type, pref->type) &&
+            (!pref->subtype ||
+                !strcasecmp(ci->ci_subtype, pref->subtype))) {
            prev->mp_next = part->mp_next;
            part->mp_next = NULL;
            ntail->mp_next = part;
@@ -1355,7 +1355,6 @@ move_preferred_part (CT ct, char *type, char *subtype)
     }
     ntail->mp_next = head->mp_next;
     m->mp_parts = nhead->mp_next;
-
 }
 
 /*
@@ -1368,7 +1367,7 @@ prefer_parts(CT ct)
 {
     int i;
     for (i = 0; i < npreferred; i++)
-       move_preferred_part(ct, preferred_types[i], preferred_subtypes[i]);
+       move_preferred_part(ct, mime_preference + i);
 }
 
 
index e01091e1a9fc8a5180b301a772579ef0c690371d..40beb1caf11eef8ed0128e2769e203a2d6dfe855 100644 (file)
@@ -188,10 +188,10 @@ do_cache:
                if (npreferred >= NPREFS)
                    adios (NULL, "too many preferred types (starting with %s), %d max",
                           cp, NPREFS);
-               preferred_types[npreferred] = cp;
+               mime_preference[npreferred].type = cp;
                cp = strchr(cp, '/');
                if (cp) *cp++ = '\0';
-               preferred_subtypes[npreferred++] = cp;
+               mime_preference[npreferred++].subtype = cp;
                continue;
 
            case NPREFERSW:
index 80eddb27dd88028ed7d1e0e7b6a89cb5308c11dd..ed6ad77fddcec97d3de0971c0e43ca57aeb6cbb0 100644 (file)
@@ -161,10 +161,10 @@ do_cache:
                if (npreferred >= NPREFS)
                    adios (NULL, "too many preferred types (starting with %s), %d max",
                           cp, NPREFS);
-               preferred_types[npreferred] = cp;
+               mime_preference[npreferred].type = cp;
                cp = strchr(cp, '/');
                if (cp) *cp++ = '\0';
-               preferred_subtypes[npreferred++] = cp;
+               mime_preference[npreferred++].subtype = cp;
                continue;
 
            case NPREFERSW: