Quellcode durchsuchen

* apt-pkg/contrib/strutl.cc:
- support \n and \r\n line endings in ReadMessages

David Kalnischkies vor 14 Jahren
Ursprung
Commit
947878508f
2 geänderte Dateien mit 11 neuen und 2 gelöschten Zeilen
  1. 3 2
      apt-pkg/contrib/strutl.cc
  2. 8 0
      debian/changelog

+ 3 - 2
apt-pkg/contrib/strutl.cc

@@ -752,7 +752,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' ||
+	     (strncmp(I, "\n\n", 2) != 0 && strncmp(I, "\r\n\r\n", 4) != 0))
 	    continue;
 	 
 	 // Pull the message out
@@ -760,7 +761,7 @@ bool ReadMessages(int Fd, vector<string> &List)
 	 PartialMessage += Message;
 
 	 // Fix up the buffer
-	 for (; I < End && *I == '\n'; I++);
+	 for (; I < End && (*I == '\r' || *I == '\n'); ++I);
 	 End -= I-Buffer;	 
 	 memmove(Buffer,I,End-Buffer);
 	 I = Buffer;

+ 8 - 0
debian/changelog

@@ -1,3 +1,11 @@
+apt (0.9.8~exp1) UNRELEASED; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/contrib/strutl.cc:
+    - support \n and \r\n line endings in ReadMessages
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Mon, 09 Jul 2012 17:36:40 +0200
+
 apt (0.9.7.1) unstable; urgency=low
 
   [ Program translation updates ]