--- loncom/interface/printout.pl 2003/10/20 17:39:30 1.39 +++ loncom/interface/printout.pl 2004/03/15 19:26:49 1.40.2.3 @@ -1,7 +1,7 @@ #!/usr/bin/perl # CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc. # -# $Id: printout.pl,v 1.39 2003/10/20 17:39:30 sakharuk Exp $ +# $Id: printout.pl,v 1.40.2.3 2004/03/15 19:26:49 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,6 +32,7 @@ use File::Path; use IO::File; use Image::Magick; +my %origENV=%ENV; if (! &LONCAPA::loncgi::check_cookie_and_load_env()) { print < Bad Cookie -Your cookie information is incorrect. What\'s up with that? +Your cookie information is incorrect. END @@ -48,16 +49,19 @@ END print "Content-type: text/html\n\n"; print "\n"; -#### my ($texfile,$laystyle,$numberofcolumns,$selectionmade) = split(/&/,$ENV{'QUERY_STRING'}); -my $identifier = $ENV{'QUERY_STRING'}; -my $texfile = $ENV{$identifier.'.file'}; -my $laystyle = $ENV{$identifier.'.layout'}; -my $numberofcolumns = $ENV{$identifier.'.numcol'}; -my $selectionmade = $ENV{$identifier.'.selection'}; + my $identifier = $ENV{'QUERY_STRING'}; + my $texfile = $ENV{'cgi.'.$identifier.'.file'}; + my $laystyle = $ENV{'cgi.'.$identifier.'.layout'}; + my $numberofcolumns = $ENV{'cgi.'.$identifier.'.numcol'}; + my $selectionmade = $ENV{'cgi.'.$identifier.'.selection'}; + my $tableofcontents = $ENV{'cgi.'.$identifier.'tableofcontents'}; + my $tableofindex = $ENV{'cgi.'.$identifier.'tableofindex'}; + my $advans_role = $ENV{'cgi.'.$identifier.'role'}; + + #got what we needed reset ENV in case it is to big for system + %ENV=%origENV; - my $advans_role=0; - if ($selectionmade>=10000) {$selectionmade=$selectionmade/10000; $advans_role=1;} my $figfile = $texfile; $figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/; my $duefile = $texfile; @@ -70,13 +74,18 @@ my $selectionmade = $ENV{$identifier.'.s my $noteps; foreach $not_eps (@content_of_file) { if ($not_eps ne '') { + $not_eps=~s|\/\.\/|\/|g; my $eps_f = $not_eps; $eps_f =~ s/\.[^.]*$/\.eps/i; - $_ = $eps_f; - m/\/home\/httpd\/html\/res\/(.+)/; - $eps_f = '/home/httpd/prtspool/'.$1; + if ($eps_f=~/\/home\/([^\/]+)\/public_html\//) { + $eps_f=~s/\/home\/([^\/]+)\/public_html/$1/; + $eps_f = '/home/httpd/prtspool/'.$eps_f; + } else { + $eps_f=~m/\/home\/httpd\/html\/res\/(.+)/; + $eps_f = '/home/httpd/prtspool/'.$1; + } my $path=$eps_f; - $path=~s/\/([^\/]+)\.eps$//; + $path=~s/\/([^\/]+)\.eps$//; File::Path::mkpath($path,0,0777); my $image = Image::Magick->new; $not_eps =~ s/^\s+//; @@ -105,10 +114,12 @@ my $selectionmade = $ENV{$identifier.'.s my $path_file = $1.'/'; chdir $path_file; system("latex $name_file 1>/dev/null 2>/dev/null"); - if ($selectionmade>=10) {system("latex $name_file 1>/dev/null 2>/dev/null");} #to create table of contents + if ($tableofcontents eq 'yes') { + system("latex $name_file 1>/dev/null 2>/dev/null"); + } #to create table of contents my $idxname=$name_file; $idxname=~s/\.tex$/\.idx/; - if ($selectionmade>=100) { + if ($tableofindex eq 'yes') { system("makeindex $idxname"); system("latex $name_file 1>/dev/null 2>/dev/null"); } #to create index