Rocco Rutte:
authorpdmef <pdmef@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Thu, 11 Aug 2005 10:11:24 +0000 (10:11 +0000)
committerpdmef <pdmef@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Thu, 11 Aug 2005 10:11:24 +0000 (10:11 +0000)
- fix bug #4709

git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@385 e385b8ad-14ed-0310-8656-cc95a2468c6d

handler.c

index 4ba746c..2eb2dc1 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -895,7 +895,7 @@ static void text_plain_flowed_handler (BODY * a, STATE * s)
   int bytes = a->length;
   char buf[LONG_STRING];
   char *curline = strdup ("");
   int bytes = a->length;
   char buf[LONG_STRING];
   char *curline = strdup ("");
-  char *t;
+  char *t = NULL;
   unsigned int curline_len = 1;
   unsigned int quotelevel = 0, newql = 0;
   int first_line = 1;
   unsigned int curline_len = 1;
   unsigned int quotelevel = 0, newql = 0;
   int first_line = 1;
@@ -906,8 +906,9 @@ static void text_plain_flowed_handler (BODY * a, STATE * s)
 
     newql = get_quote_level (buf);
 
 
     newql = get_quote_level (buf);
 
-    if ((t = strrchr (buf, '\n')) || (t = strrchr (buf, '\r'))) {
-      *t = '\0';
+    if (bytes == 0 || ((t = strrchr (buf, '\n')) || (t = strrchr (buf, '\r')))) {
+      if (t)
+        *t = '\0';
       if (str_len (curline) > 0 && curline[str_len (curline) - 1] == ' '
           && newql == quotelevel
           && strcmp (curline + quotelevel, "-- ") != 0) {
       if (str_len (curline) > 0 && curline[str_len (curline) - 1] == ' '
           && newql == quotelevel
           && strcmp (curline + quotelevel, "-- ") != 0) {
@@ -938,19 +939,6 @@ static void text_plain_flowed_handler (BODY * a, STATE * s)
         quotelevel = newql;
       }
     }
         quotelevel = newql;
       }
     }
-    else if (bytes == 0) {
-      /* in case there's no line end it's likely the last line
-       * so append to current (if any) */
-      if (buf[newql] == ' ')
-        curline[str_len (curline) - 1] = '\0';
-      curline = realloc (curline, curline_len + str_len (buf));
-      if (curline_len == 1)
-        *curline = '\0';
-      curline_len += str_len (buf);
-      str_ncat (curline, curline_len, buf + newql,
-                    str_len (buf + newql));
-      break;
-    }
   }
   if (curline) {
     print_flowed_line (curline, s, quotelevel);
   }
   if (curline) {
     print_flowed_line (curline, s, quotelevel);