Procházet zdrojové kódy

* apt-pkg/aptconfiguration.cc:
- parse dpkg --print-foreign-architectures correctly in
case archs are separated by newline instead of space, too.

David Kalnischkies před 14 roky
rodič
revize
4df62de6ea

+ 1 - 1
apt-pkg/aptconfiguration.cc

@@ -335,7 +335,7 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
 		FILE *dpkg = popen(dpkgcall.c_str(), "r");
 		char buf[1024];
 		if(dpkg != NULL) {
-			if (fgets(buf, sizeof(buf), dpkg) != NULL) {
+			while (fgets(buf, sizeof(buf), dpkg) != NULL) {
 				char* arch = strtok(buf, " ");
 				while (arch != NULL) {
 					for (; isspace(*arch) != 0; ++arch);

+ 4 - 1
debian/changelog

@@ -5,13 +5,16 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low
     - show a debug why a package was kept by ResolveByKeep()
   * doc/manpage-style.xml:
     - put <brackets> around email addresses
+  * apt-pkg/aptconfiguration.cc:
+    - parse dpkg --print-foreign-architectures correctly in
+      case archs are separated by newline instead of space, too.
 
   [ Chris Leick ]
   * German manpage translation update
   * doc/*.xml:
     - find and fix a bunch of misspellings
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 20 Nov 2011 18:02:08 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 14 Dec 2011 12:32:37 +0100
 
 apt (0.8.15.9) unstable; urgency=low
 

+ 18 - 0
test/integration/test-bug-612958-use-dpkg-multiarch-config

@@ -56,4 +56,22 @@ testfail 'dpkg config' 'armel'
 echo '#! /bin/sh
 echo "amd64 armel"' > ./dpkg-printer
 
+testpass 'dpkg config' 'i386'
+testpass 'dpkg config' 'amd64'
+testpass 'dpkg config' 'armel'
+
+echo '#! /bin/sh
+echo "amd64
+armel"' > ./dpkg-printer
+
+testpass 'dpkg config' 'i386'
+testpass 'dpkg config' 'amd64'
 testpass 'dpkg config' 'armel'
+
+echo '#! /bin/sh
+echo "amd64
+i386"' > ./dpkg-printer
+
+testpass 'dpkg config' 'i386'
+testpass 'dpkg config' 'amd64'
+testfail 'dpkg config' 'armel'