]> diplodocus.org Git - nmh/blobdiff - sbr/m_getfld.c
sbr/utils.c: Delete dead-code open_form(); not called.
[nmh] / sbr / m_getfld.c
index f17ad4176d4b3a4830cd5ce285c8a00927359140..e500e24e61a8eb0481e46e8c3690ba9b8f0e25e8 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * m_getfld.c -- read/parse a message
+/* m_getfld.c -- read/parse a message
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
 /*
  * static prototypes
  */
-struct m_getfld_state;
 static int m_Eom (m_getfld_state_t);
 
 #define eom(c,s)       (s->msg_style != MS_DEFAULT && \
@@ -667,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)
@@ -778,7 +775,7 @@ m_unknown(m_getfld_state_t *gstate, FILE *iob)
     s = *gstate;
 
 /*
- * Figure out what the message delimitter string is for this
+ * Figure out what the message delimiter string is for this
  * maildrop.  (This used to be part of m_Eom but I didn't like
  * the idea of an "if" statement that could only succeed on the
  * first call to m_Eom getting executed on each call, i.e., at
@@ -796,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) {
@@ -827,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.
+     *
+     *     "\nFrom \0"   7                  "\001\001\001\001\n\0"  6
+     *       |                                  |
+     *       delimstr   c=6                     delimstr   c=5
      *
-     *     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"
+     *     "\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
      */
 
     /*
@@ -879,16 +881,15 @@ m_Eom (m_getfld_state_t s)
        if ((c2 = Getc (s)) == EOF) {
            *cp = '\0';
            break;
-       } else {
-           *cp = c2;
        }
+        *cp = c2;
     }
 
     if (i != s->edelimlen  ||
         strncmp (text, (char *)s->edelim, s->edelimlen)) {
        if (i == 0 && s->msg_style == MS_MBOX)
            /* the final newline in the (brain damaged) unix-format
-            * maildrop is part of the delimitter - delete it.
+            * maildrop is part of the delimiter - delete it.
             */
            return 1;