Revert " MDL-45044 filter_tex: properly escape excutable pathnames for Windows"
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 26 Jun 2014 08:06:20 +0000 (10:06 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 26 Jun 2014 08:06:20 +0000 (10:06 +0200)
filter/tex/latex.php
filter/tex/lib.php
filter/tex/settings.php
filter/tex/texdebug.php

index b56336a..a79a33e 100644 (file)
@@ -94,7 +94,6 @@
             if (empty($pathlatex)) {
                 return false;
             }
             if (empty($pathlatex)) {
                 return false;
             }
-            $pathlatex = escapeshellarg(trim($pathlatex, " '\""));
 
             $doc = $this->construct_latex_document( $formula, $fontsize );
 
 
             $doc = $this->construct_latex_document( $formula, $fontsize );
 
             }
 
             // run dvips (.dvi to .ps)
             }
 
             // run dvips (.dvi to .ps)
-            $pathdvips = escapeshellarg(trim(get_config('filter_tex', 'pathdvips'), " '\""));
+            $pathdvips = get_config('filter_tex', 'pathdvips');
             $command = "{$pathdvips} -E $dvi -o $ps";
             if ($this->execute($command, $log )) {
                 return false;
             $command = "{$pathdvips} -E $dvi -o $ps";
             if ($this->execute($command, $log )) {
                 return false;
             } else {
                 $bg_opt = "";
             }
             } else {
                 $bg_opt = "";
             }
-            $pathconvert = escapeshellarg(trim(get_config('filter_tex', 'pathconvert'), " '\""));
+            $pathconvert = get_config('filter_tex', 'pathconvert');
             $command = "{$pathconvert} -density $density -trim $bg_opt $ps $img";
             if ($this->execute($command, $log )) {
                 return false;
             $command = "{$pathconvert} -density $density -trim $bg_opt $ps $img";
             if ($this->execute($command, $log )) {
                 return false;
index 129ae29..b77dfae 100644 (file)
@@ -125,9 +125,8 @@ function filter_tex_updatedcallback($name) {
         return;
     }
 
         return;
     }
 
-    $pathlatex = trim($pathlatex, " '\"");
-    $pathdvips = trim(get_config('filter_tex', 'pathdvips'), " '\"");
-    $pathconvert = trim(get_config('filter_tex', 'pathconvert'), " '\"");
+    $pathdvips = get_config('filter_tex', 'pathdvips');
+    $pathconvert = get_config('filter_tex', 'pathconvert');
 
     if (!(is_file($pathlatex) && is_executable($pathlatex) &&
           is_file($pathdvips) && is_executable($pathdvips) &&
 
     if (!(is_file($pathlatex) && is_executable($pathlatex) &&
           is_file($pathdvips) && is_executable($pathdvips) &&
index 00ea31a..6c79a21 100644 (file)
@@ -50,9 +50,9 @@ if ($ADMIN->fulltree) {
     } else if (PHP_OS=='WINNT' or PHP_OS=='WIN32' or PHP_OS=='Windows') {
         // note: you need Ghostscript installed (standard), miktex (standard)
         // and ImageMagick (install at c:\ImageMagick)
     } else if (PHP_OS=='WINNT' or PHP_OS=='WIN32' or PHP_OS=='Windows') {
         // note: you need Ghostscript installed (standard), miktex (standard)
         // and ImageMagick (install at c:\ImageMagick)
-        $default_filter_tex_pathlatex   = "c:\\texmf\\miktex\\bin\\latex.exe";
-        $default_filter_tex_pathdvips   = "c:\\texmf\\miktex\\bin\\dvips.exe";
-        $default_filter_tex_pathconvert = "c:\\imagemagick\\convert.exe";
+        $default_filter_tex_pathlatex   = "\"c:\\texmf\\miktex\\bin\\latex.exe\" ";
+        $default_filter_tex_pathdvips   = "\"c:\\texmf\\miktex\\bin\\dvips.exe\" ";
+        $default_filter_tex_pathconvert = "\"c:\\imagemagick\\convert.exe\" ";
 
     } else {
         $default_filter_tex_pathlatex   = '';
 
     } else {
         $default_filter_tex_pathlatex   = '';
@@ -60,16 +60,6 @@ if ($ADMIN->fulltree) {
         $default_filter_tex_pathconvert = '';
     }
 
         $default_filter_tex_pathconvert = '';
     }
 
-    $pathlatex = get_config('filter_tex', 'pathlatex');
-    $pathdvips = get_config('filter_tex', 'pathdvips');
-    $pathconvert = get_config('filter_tex', 'pathconvert');
-    if (strrpos($pathlatex . $pathdvips . $pathconvert, '"') or
-            strrpos($pathlatex . $pathdvips . $pathconvert, "'")) {
-        set_config('pathlatex', trim($pathlatex, " '\""), 'filter_tex');
-        set_config('pathdvips', trim($pathdvips, " '\""), 'filter_tex');
-        set_config('pathconvert', trim($pathconvert, " '\""), 'filter_tex');
-    }
-
     $items[] = new admin_setting_configexecutable('filter_tex/pathlatex', get_string('pathlatex', 'filter_tex'), '', $default_filter_tex_pathlatex);
     $items[] = new admin_setting_configexecutable('filter_tex/pathdvips', get_string('pathdvips', 'filter_tex'), '', $default_filter_tex_pathdvips);
     $items[] = new admin_setting_configexecutable('filter_tex/pathconvert', get_string('pathconvert', 'filter_tex'), '', $default_filter_tex_pathconvert);
     $items[] = new admin_setting_configexecutable('filter_tex/pathlatex', get_string('pathlatex', 'filter_tex'), '', $default_filter_tex_pathlatex);
     $items[] = new admin_setting_configexecutable('filter_tex/pathdvips', get_string('pathdvips', 'filter_tex'), '', $default_filter_tex_pathdvips);
     $items[] = new admin_setting_configexecutable('filter_tex/pathconvert', get_string('pathconvert', 'filter_tex'), '', $default_filter_tex_pathconvert);
index 2612a2b..51588da 100644 (file)
         // first check if it is likely to work at all
         $output .= "<h3>Checking executables</h3>\n";
         $executables_exist = true;
         // first check if it is likely to work at all
         $output .= "<h3>Checking executables</h3>\n";
         $executables_exist = true;
-        $pathlatex = trim(get_config('filter_tex', 'pathlatex'), " '\"");
+        $pathlatex = get_config('filter_tex', 'pathlatex');
         if (is_file($pathlatex)) {
             $output .= "latex executable ($pathlatex) is readable<br />\n";
         }
         if (is_file($pathlatex)) {
             $output .= "latex executable ($pathlatex) is readable<br />\n";
         }
             $executables_exist = false;
             $output .= "<b>Error:</b> latex executable ($pathlatex) is not readable<br />\n";
         }
             $executables_exist = false;
             $output .= "<b>Error:</b> latex executable ($pathlatex) is not readable<br />\n";
         }
-        $pathdvips = trim(get_config('filter_tex', 'pathdvips'), " '\"");
+        $pathdvips = get_config('filter_tex', 'pathdvips');
         if (is_file($pathdvips)) {
             $output .= "dvips executable ($pathdvips) is readable<br />\n";
         }
         if (is_file($pathdvips)) {
             $output .= "dvips executable ($pathdvips) is readable<br />\n";
         }
             $executables_exist = false;
             $output .= "<b>Error:</b> dvips executable ($pathdvips) is not readable<br />\n";
         }
             $executables_exist = false;
             $output .= "<b>Error:</b> dvips executable ($pathdvips) is not readable<br />\n";
         }
-        $pathconvert = trim(get_config('filter_tex', 'pathconvert'), " '\"");
+        $pathconvert = get_config('filter_tex', 'pathconvert');
         if (is_file($pathconvert)) {
             $output .= "convert executable ($pathconvert) is readable<br />\n";
         }
         if (is_file($pathconvert)) {
             $output .= "convert executable ($pathconvert) is readable<br />\n";
         }
         chdir($latex->temp_dir);
 
         // step 1: latex command
         chdir($latex->temp_dir);
 
         // step 1: latex command
-        $pathlatex = escapeshellarg($pathlatex);
         $cmd = "$pathlatex --interaction=nonstopmode --halt-on-error $tex";
         $output .= execute($cmd);
 
         // step 2: dvips command
         $cmd = "$pathlatex --interaction=nonstopmode --halt-on-error $tex";
         $output .= execute($cmd);
 
         // step 2: dvips command
-        $pathdvips = escapeshellarg($pathdvips);
         $cmd = "$pathdvips -E $dvi -o $ps";
         $output .= execute($cmd);
 
         // step 3: convert command
         $cmd = "$pathdvips -E $dvi -o $ps";
         $output .= execute($cmd);
 
         // step 3: convert command
-        $pathconvert = escapeshellarg($pathconvert);
         $cmd = "$pathconvert -density 240 -trim $ps $img ";
         $output .= execute($cmd);
 
         $cmd = "$pathconvert -density 240 -trim $ps $img ";
         $output .= execute($cmd);