really fix latex printing when datasrc contains a ;
[freeside.git] / FS / FS / cust_bill.pm
index b249533..f31e455 100644 (file)
@@ -6,6 +6,7 @@ use vars qw( $invoice_lines @buf ); #yuck
 use Date::Format;
 use Text::Template;
 use File::Temp 0.14;
+use String::ShellQuote;
 use FS::UID qw( datasrc );
 use FS::Record qw( qsearch qsearchs );
 use FS::Misc qw( send_email );
@@ -1161,9 +1162,11 @@ sub print_ps {
   my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
   chdir($dir);
 
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  my $sfile = shell_quote $file;
+
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
 
   system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
@@ -1208,15 +1211,17 @@ sub print_pdf {
   #system('pdflatex', "$file.tex");
   #! LaTeX Error: Unknown graphics extension: .eps.
 
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  my $sfile = shell_quote $file;
+
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
-  system("pslatex $file.tex >/dev/null 2>&1") == 0
+  system("pslatex $sfile.tex >/dev/null 2>&1") == 0
     or die "pslatex $file.tex failed: $!";
 
   #system('dvipdf', "$file.dvi", "$file.pdf" );
   system(
-    "dvips -q -t letter -f $file.dvi ".
-    "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$file.pdf ".
+    "dvips -q -t letter -f $sfile.dvi ".
+    "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$sfile.pdf ".
     "     -c save pop -"
   ) == 0
     or die "dvips | gs failed: $!";