Fix heuristics for badly header in body. - rohrpost - A commandline mail client to change the world as we see it.
 (HTM) git clone git://r-36.net/rohrpost
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit b08d2e8426b3b8dbe1020b926ce748ea60fe6bcd
 (DIR) parent c0643797a45a87d020aff006c77be923b034d402
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat,  4 Oct 2025 21:48:56 +0200
       
       Fix heuristics for badly header in body.
       
       Diffstat:
         M mime.c                              |      12 +++++++-----
       
       1 file changed, 7 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/mime.c b/mime.c
       @@ -970,12 +970,14 @@ mime_parsebufintern(mime_t *mime, char *str, int len)
                                                goto mimeparsebufbodyparse;
                                        }
                                        /*
       -                                 * Does the line have some "header:
       -                                 * value\n" form? Go on parsing headers.
       +                                 * TODO: Find Apple and Google developers
       +                                 *       and teach them how to not do this.
       +                                 * Does the line have some "header: value\n"
       +                                 * form? Go on parsing headers.
                                         */
                                        for (key = p; key[0] != '\n'; key++) {
                                                //printf("key[0] = '%c'\n", key[0]);
       -                                        if (key[0] == ':')
       +                                        if (key[0] == ':' && key[1] == ' ')
                                                        break;
                                                if (key[0] == ' ') {
                                                        mime->rawhdrs = memdupz(str, (p - str));
       @@ -984,8 +986,8 @@ mime_parsebufintern(mime_t *mime, char *str, int len)
                                                }
                                        }
                                        /*
       -                                 * A line simply ended with no header
       -                                 * suspicion.
       +                                 * A line simply ended with no header.
       +                                 * That is suspicious.
                                         */
                                        if (key[0] == '\n') {
                                                mime->rawhdrs = memdupz(str, (p - str));