hat als Seiteneffekt, dass Latex Tests String::ShellQuote brauchen.
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;
$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);