MDL-65744 lib: Update minify pathconverter lib
authorMathew May <mathewm@hotmail.co.nz>
Tue, 11 Jun 2019 05:05:44 +0000 (13:05 +0800)
committerMathew May <mathewm@hotmail.co.nz>
Tue, 11 Jun 2019 05:08:29 +0000 (13:08 +0800)
lib/minify/matthiasmullie-pathconverter/LICENSE [new file with mode: 0644]
lib/minify/matthiasmullie-pathconverter/src/Converter.php
lib/thirdpartylibs.xml

diff --git a/lib/minify/matthiasmullie-pathconverter/LICENSE b/lib/minify/matthiasmullie-pathconverter/LICENSE
new file mode 100644 (file)
index 0000000..491295a
--- /dev/null
@@ -0,0 +1,18 @@
+Copyright (c) 2015 Matthias Mullie
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
index c8b0c69..519d3c8 100644 (file)
@@ -31,21 +31,22 @@ class Converter implements ConverterInterface
     /**
      * @param string $from The original base path (directory, not file!)
      * @param string $to   The new base path (directory, not file!)
+     * @param string $root Root directory (defaults to `getcwd`)
      */
-    public function __construct($from, $to)
+    public function __construct($from, $to, $root = '')
     {
         $shared = $this->shared($from, $to);
         if ($shared === '') {
             // when both paths have nothing in common, one of them is probably
             // absolute while the other is relative
-            $cwd = getcwd();
-            $from = strpos($from, $cwd) === 0 ? $from : $cwd.'/'.$from;
-            $to = strpos($to, $cwd) === 0 ? $to : $cwd.'/'.$to;
+            $root = $root ?: getcwd();
+            $from = strpos($from, $root) === 0 ? $from : preg_replace('/\/+/', '/', $root.'/'.$from);
+            $to = strpos($to, $root) === 0 ? $to : preg_replace('/\/+/', '/', $root.'/'.$to);
 
             // or traveling the tree via `..`
             // attempt to resolve path, or assume it's fine if it doesn't exist
-            $from = realpath($from) ?: $from;
-            $to = realpath($to) ?: $to;
+            $from = @realpath($from) ?: $from;
+            $to = @realpath($to) ?: $to;
         }
 
         $from = $this->dirname($from);
@@ -155,7 +156,7 @@ class Converter implements ConverterInterface
         $to = mb_substr($this->to, mb_strlen($shared));
 
         // add .. for every directory that needs to be traversed to new path
-        $to = str_repeat('../', mb_substr_count($to, '/'));
+        $to = str_repeat('../', count(array_filter(explode('/', $to))));
 
         return $to.ltrim($path, '/');
     }
@@ -169,11 +170,11 @@ class Converter implements ConverterInterface
      */
     protected function dirname($path)
     {
-        if (is_file($path)) {
+        if (@is_file($path)) {
             return dirname($path);
         }
 
-        if (is_dir($path)) {
+        if (@is_dir($path)) {
             return rtrim($path, '/');
         }
 
index f8ea8cb..0c22652 100644 (file)
@@ -67,7 +67,7 @@
     <location>minify/matthiasmullie-pathconverter</location>
     <name>MatthiasMullie\PathConverter</name>
     <license>MIT</license>
-    <version>1.1.0</version>
+    <version>1.1.2</version>
     <licenseversion></licenseversion>
   </library>
   <library>