support \n and \r\n line endings in ReadMessages
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 15 Jun 2013 08:35:04 +0000 (10:35 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 20 Jun 2013 08:53:58 +0000 (10:53 +0200)
apt-pkg/contrib/strutl.cc
debian/changelog

index f4dd340..d0e74d8 100644 (file)
@@ -758,7 +758,8 @@ bool ReadMessages(int Fd, vector<string> &List)
       // Look for the end of the message
       for (char *I = Buffer; I + 1 < End; I++)
       {
-        if (I[0] != '\n' || I[1] != '\n')
+        if (I[1] != '\n' ||
+              (I[0] != '\n' && strncmp(I, "\r\n\r\n", 4) != 0))
            continue;
         
         // Pull the message out
@@ -766,7 +767,7 @@ bool ReadMessages(int Fd, vector<string> &List)
         PartialMessage += Message;
 
         // Fix up the buffer
-        for (; I < End && *I == '\n'; I++);
+        for (; I < End && (*I == '\n' || *I == '\r'); ++I);
         End -= I-Buffer;        
         memmove(Buffer,I,End-Buffer);
         I = Buffer;
index 8fef47d..dfff872 100644 (file)
@@ -18,6 +18,7 @@ apt (0.9.8.3) UNRELEASED; urgency=low
   * fix file location for configure-index.gz in apt.conf(5) (Closes: #711921)
   * handle missing "Description" in apt-cache show (Closes: #712435)
   * try defaults if auto-detection failed in apt-cdrom (Closes: #712433)
+  * support \n and \r\n line endings in ReadMessages
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 09 Jun 2013 15:06:24 +0200