Browse Source

Merge branch '1.1'

Jordi Boggiano 8 years ago
parent
commit
a4e8d858ba

+ 3 - 0
src/Composer/Console/Application.php

@@ -229,11 +229,14 @@ class Application extends BaseApplication
                 $io->writeError('<info>Memory usage: '.round(memory_get_usage() / 1024 / 1024, 2).'MB (peak: '.round(memory_get_peak_usage() / 1024 / 1024, 2).'MB), time: '.round(microtime(true) - $startTime, 2).'s');
             }
 
+            restore_error_handler();
+
             return $result;
         } catch (ScriptExecutionException $e) {
             return $e->getCode();
         } catch (\Exception $e) {
             $this->hintCommonErrors($e);
+            restore_error_handler();
             throw $e;
         }
     }

+ 8 - 2
src/Composer/Repository/PlatformRepository.php

@@ -94,19 +94,25 @@ class PlatformRepository extends ArrayRepository
             if (in_array($name, array('standard', 'Core'))) {
                 continue;
             }
+            $extraDescription = null;
 
             $reflExt = new \ReflectionExtension($name);
             try {
                 $prettyVersion = $reflExt->getVersion();
                 $version = $versionParser->normalize($prettyVersion);
             } catch (\UnexpectedValueException $e) {
-                $prettyVersion = '0';
+                $extraDescription = ' (actual version: '.$prettyVersion.')';
+                if (preg_match('{^(\d+\.\d+\.\d+(?:\.\d+)?)}', $prettyVersion, $match)) {
+                    $prettyVersion = $match[1];
+                } else {
+                    $prettyVersion = '0';
+                }
                 $version = $versionParser->normalize($prettyVersion);
             }
 
             $packageName = $this->buildPackageName($name);
             $ext = new CompletePackage($packageName, $version, $prettyVersion);
-            $ext->setDescription('The '.$name.' PHP extension');
+            $ext->setDescription('The '.$name.' PHP extension' . $extraDescription);
             $this->addPackage($ext);
         }