Sachen die ans System übergeben werden richtig Quoten.
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 6 Jan 2012 12:48:04 +0000 (13:48 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 6 Jan 2012 12:48:04 +0000 (13:48 +0100)
hat als Seiteneffekt, dass Latex Tests String::ShellQuote brauchen.

SL/InstallationCheck.pm
scripts/installation_check.pl

index 70d6217..e867076 100644 (file)
@@ -71,6 +71,10 @@ sub template_dirs {
 
 sub classes_from_latex {
   my ($path, $class) = @_;
+  eval { use String::ShellQuote; 1 } or warn "can't load String::ShellQuote" && return;
+  $path  = shell_quote $path;
+  $class = shell_quote $class;
+
   open my $pipe, q#egrep -rs '^[\ \t]*# . "$class' $path". q# | sed 's/ //g' | awk -F '{' '{print $2}' | awk -F '}' '{print $1}' |#;
   my @cls = <$pipe>;
   close $pipe;
index 3a81c85..0f0dc20 100755 (executable)
@@ -95,7 +95,12 @@ sub kpsewhich {
   $package =~ s/[^-_0-9A-Za-z]//g;
   my $type_desc = $type eq 'cls' ? 'document class' : 'package';
 
-  my $exit = system(qq|TEXINPUTS=".:$dw:" kpsewhich $package.$type > /dev/null|);
+  eval { use String::ShellQuote; 1 } or warn "can't load String::ShellQuote" && return;
+     $dw         = shell_quote $dw;
+  my $e_package  = shell_quote $package;
+  my $e_type     = shell_quote $type;
+
+  my $exit = system(qq|TEXINPUTS=".:$dw:" kpsewhich $e_package.$e_type > /dev/null|);
   my $res  = $exit > 0 ? 0 : 1;
 
   print_result("Looking for LaTeX $type_desc $package", $res);