MTrack/SCM/Git/Repo.php
[web.mtrack] / MTrack / SCM.php
index 043315f..817a1af 100644 (file)
@@ -65,12 +65,12 @@ abstract class MTrackSCM
         
         foreach ($args as $arg) {
             if (!is_array($arg)) {
-                $cmd .= ' ' . escapeshellarg($arg);
+                $cmd .= ' ' . MTrackSCM::escapeshellarg($arg);
                 continue;
             }
             
             foreach ($arg as $a) {
-                $cmd .= ' ' . escapeshellarg($a);
+                $cmd .= ' ' . MTrackSCM::escapeshellarg($a);
             }
         }
         
@@ -80,7 +80,7 @@ abstract class MTrackSCM
         $FORKS[$cmd]++;
         //echo  $cmd;
         // debugging....
-        if (treu) {
+        if (false) {
             if (php_sapi_name() == 'cli') {
                 echo $cmd, "\n";
             } else {
@@ -104,8 +104,18 @@ abstract class MTrackSCM
         }
     }
     
-    
-    
+    static function escapeshellarg($a) {
+        if (preg_match('/\-[a-z0-9]+$/i', $a)) {
+            return $a; // raw -a
+        }
+        if (preg_match('/\-\-[a-z0-9]+=/i', $a)) {
+            $lr = explode('=', $a,2);
+            return $lr[0].'=' . escapeshellarg($lr[1]); // raw -a
+        }
+        return escapeshellarg($a);
+        
+        
+    }
     
     public $repopath = '';
     /*