]> diplodocus.org Git - nmh/blobdiff - uip/slocal.c
Moved all file static data in m_getfld.c into the
[nmh] / uip / slocal.c
index 869fa17f81a3a4ca51816059451d6e597e44af33..a665d0ad9bc2070186ef617ae148687df1aa6090 100644 (file)
@@ -740,13 +740,14 @@ parse (int fd)
      * a lookup table.
      */
     for (i = 0, state = FLD;;) {
-       switch (state = m_getfld (state, name, field, sizeof(field), in)) {
+       int fieldsz = sizeof field;
+       switch (state = m_getfld (state, name, field, &fieldsz, in)) {
            case FLD: 
-           case FLDEOF: 
            case FLDPLUS: 
                lp = add (field, NULL);
                while (state == FLDPLUS) {
-                   state = m_getfld (state, name, field, sizeof(field), in);
+                   fieldsz = sizeof field;
+                   state = m_getfld (state, name, field, &fieldsz, in);
                    lp = add (field, lp);
                }
                for (p = hdrs; p->p_name; p++) {
@@ -775,12 +776,9 @@ parse (int fd)
                    p++, i++;
                    p->p_name = NULL;
                }
-               if (state != FLDEOF)
-                   continue;
-               break;
+               continue;
 
            case BODY: 
-           case BODYEOF: 
            case FILEEOF: 
                break;
 
@@ -1424,21 +1422,24 @@ suppress_duplicates (int fd, char *file)
     rewind (in);
 
     for (state = FLD;;) {
-       state = m_getfld (state, name, buf, sizeof(buf), in);
+       int bufsz = sizeof buf;
+       state = m_getfld (state, name, buf, &bufsz, in);
        switch (state) {
            case FLD:
            case FLDPLUS:
-           case FLDEOF:
                /* Search for the message ID */
                if (mh_strcasecmp (name, "Message-ID")) {
-                   while (state == FLDPLUS)
-                       state = m_getfld (state, name, buf, sizeof(buf), in);
+                   while (state == FLDPLUS) {
+                       bufsz = sizeof buf;
+                       state = m_getfld (state, name, buf, &bufsz, in);
+                   }
                    continue;
                }
 
                cp = add (buf, NULL);
                while (state == FLDPLUS) {
-                   state = m_getfld (state, name, buf, sizeof(buf), in);
+                   bufsz = sizeof buf;
+                   state = m_getfld (state, name, buf, &bufsz, in);
                    cp = add (buf, cp);
                }
                key.dptr = trimcpy (cp);
@@ -1486,7 +1487,6 @@ suppress_duplicates (int fd, char *file)
                break;
 
           case BODY:
-          case BODYEOF:
           case FILEEOF:
                break;