Ver Fonte

Less regex escaping and removed $..$ match, refs #5184

Jordi Boggiano há 9 anos atrás
pai
commit
38c49b32cb
1 ficheiros alterados com 5 adições e 5 exclusões
  1. 5 5
      src/Composer/Util/Platform.php

+ 5 - 5
src/Composer/Util/Platform.php

@@ -27,15 +27,15 @@ class Platform
      */
     public static function expandPath($path)
     {
-        if (preg_match('#^~[/\\\\]#', $path)) {
+        if (preg_match('#^~[\\/]#', $path)) {
             return self::getUserDirectory() . substr($path, 1);
         }
-        return preg_replace_callback('#^([\\$%])(\\w+)\\1?(([/\\\\].*)?)#', function($matches) {
+        return preg_replace_callback('#^(\$|(?P<percent>%))(?P<var>\w++)(?(percent)%)(?P<path>.*)#', function($matches) {
             // Treat HOME as an alias for USERPROFILE on Windows for legacy reasons
-            if (Platform::isWindows() && $matches[2] == 'HOME') {
-                return (getenv('HOME') ?: getenv('USERPROFILE')) . $matches[3];
+            if (Platform::isWindows() && $matches['var'] == 'HOME') {
+                return (getenv('HOME') ?: getenv('USERPROFILE')) . $matches['path'];
             }
-            return getenv($matches[2]) . $matches[3];
+            return getenv($matches['var']) . $matches['path'];
         }, $path);
     }