]> mj.ucw.cz Git - checkmail.git/commitdiff
Folded headers are now unfolded.
authorMartin Mares <mj@ucw.cz>
Mon, 25 Jun 2007 13:33:27 +0000 (15:33 +0200)
committerMartin Mares <mj@ucw.cz>
Mon, 25 Jun 2007 13:33:27 +0000 (15:33 +0200)
cm.c

diff --git a/cm.c b/cm.c
index f04618b69a656d7a424b0702269063bde250cd12..3a4630e63762b8e4d582882773665d1c71322dde 100644 (file)
--- a/cm.c
+++ b/cm.c
@@ -296,6 +296,13 @@ mb_get(void)
   return (mb_cc < mb_end) ? *mb_cc++ : mb_ll_get();
 }
 
+static void
+mb_unget(int c)
+{
+  if (c >= 0)
+    mb_cc--;
+}
+
 static int
 mb_check(const char *p, int len)
 {
@@ -389,7 +396,19 @@ scan_mbox(struct mbox *b, struct stat *st)
                  goto done;
                }
              if (c == '\n')
-               break;
+               {
+                 int fold = -1;
+                 do
+                   {
+                     fold++;
+                     c = mb_get();
+                   }
+                 while (c == ' ' || c == '\t');
+                 mb_unget(c);
+                 if (!fold)
+                   break;
+                 c = ' ';
+               }
              if (c == '\r')
                continue;
              if (i < sizeof(buf) - 1)