]> diplodocus.org Git - nmh/blobdiff - sbr/m_getfld.c
Makefile.am: Add test/inc/test-eom-align to XFAIL_TESTS.
[nmh] / sbr / m_getfld.c
index fe8e927b4088a73724d5b9c2e8d8a7e637265e32..e500e24e61a8eb0481e46e8c3690ba9b8f0e25e8 100644 (file)
@@ -664,7 +664,7 @@ m_getfld (m_getfld_state_t *gstate, char name[NAMESZ], char *buf, int *bufsz,
            max = *bufsz-1;
            /* Back up and store the current position. */
            bp = --s->readpos;
-           c = s->end - s->readpos < max  ?  s->end - s->readpos  :  max;
+            c = min(s->end - s->readpos, max);
            if (s->msg_style != MS_DEFAULT && c > 1) {
                /*
                 * packed maildrop - only take up to the (possible)
@@ -793,9 +793,8 @@ m_unknown(m_getfld_state_t *gstate, FILE *iob)
        if ((c = Getc (s)) == EOF) {
            *cp = '\0';
            break;
-       } else {
-           *cp = c;
        }
+        *cp = c;
     }
 
     if (i == sizeof from-1  &&  strncmp (text, "From ", sizeof from-1) == 0) {
@@ -824,16 +823,22 @@ m_unknown(m_getfld_state_t *gstate, FILE *iob)
     if (s->edelimlen <= 1)
        adios (NULL, "maildrop delimiter must be at least 2 bytes");
 
-    /* Now malloc'd memory at s->fdelim-1 referenced several times:
+    /* Now malloc'd memory at s->fdelim-1 is referenced several times,
+     * containing a copy of the string constant from delimstr.
      *
-     *     delimstr         "\nFrom "      "\001\001\001\001\n"
-     *     c                6              5
-     *     s->fdelim      \0"\n\nFrom "  \0"\n\001\001\001\001\n"
-     *     s->fdelimlen     6              5
-     *     s->msg_delim     "\nFrom "      "\001\001\001\001\n"
-     *     s->edelim        "From "        "\001\001\001\n"
-     *     s->edelimlen     5              4
-     *     s->delimend      " "            "\n"
+     *     "\nFrom \0"   7                  "\001\001\001\001\n\0"  6
+     *       |                                  |
+     *       delimstr   c=6                     delimstr   c=5
+     *
+     *     "\0\n\nFrom \0"   9              "\0\n\001\001\001\001\n\0"   8
+     *         | ||   |                         |   |   |         |
+     *         | ||   s->delimend               |   |   |         s->delimend
+     *         | ||                             |   |   |
+     *         | |s->edelim  s->edelimlen=5     |   |   s->edelim  s->edelimlen=4
+     *         | |                              |   |
+     *         | s->msg_delim                   |   s->msg_delim
+     *         |                                |
+     *         s->fdelim  s->fdelimlen=7        s->fdelim  s->fdelimlen=6
      */
 
     /*
@@ -876,9 +881,8 @@ m_Eom (m_getfld_state_t s)
        if ((c2 = Getc (s)) == EOF) {
            *cp = '\0';
            break;
-       } else {
-           *cp = c2;
        }
+        *cp = c2;
     }
 
     if (i != s->edelimlen  ||