From e960ace7286c93805851de001178904958fb3c97 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 8 Apr 2012 11:59:02 +0000 Subject: allow TLPaper.pm to override file names and path components git-svn-id: svn://tug.org/texlive/trunk@25874 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/TeXLive/TLPaper.pm | 92 +++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 31 deletions(-) (limited to 'Master/tlpkg/TeXLive') diff --git a/Master/tlpkg/TeXLive/TLPaper.pm b/Master/tlpkg/TeXLive/TLPaper.pm index 2ac7c8e02a5..19df02330d0 100644 --- a/Master/tlpkg/TeXLive/TLPaper.pm +++ b/Master/tlpkg/TeXLive/TLPaper.pm @@ -22,6 +22,17 @@ sub module_revision { return $_modulerevision; } +BEGIN { + use Exporter (); + use vars qw( @ISA @EXPORT_OK @EXPORT ); + @ISA = qw(Exporter); + @EXPORT_OK = qw( + %paper_config_path_component + %paper_config_name + ); + @EXPORT = @EXPORT_OK; +} + =pod =head1 NAME @@ -51,18 +62,28 @@ my %paper_sub = ( # Where to write to by default. my %default_paper_config_path_component = ( - "xdvi" => "xdvi/XDvi", - "pdftex" => "tex/generic/config/pdftexconfig.tex", - "dvips" => "dvips/config/config.ps", - "dvipdfmx" => "dvipdfmx/dvipdfmx.cfg", - "dvipdfm" => "dvipdfm/config/config", - "context" => "tex/context/user/cont-sys.tex", + "xdvi" => "xdvi", + "pdftex" => "tex/generic/config", + "dvips" => "dvips/config", + "dvipdfmx" => "dvipdfmx", + "dvipdfm" => "dvipdfm", + "context" => "tex/context/user", +); + +my %default_paper_config_name = ( + "xdvi" => "XDvi", + "pdftex" => "pdftexconfig.tex", + "dvips" => "config.ps", + "dvipdfmx" => "dvipdfmx.cfg", + "dvipdfm" => "config", + "context" => "cont-sys.tex", ); # Output is done to the components in this hash. # If a value is undefined, we take the one from %default_... # -my %paper_config_path_component; +our %paper_config_path_component; +our %paper_config_name; my %xdvi_papersize = ( @@ -213,6 +234,15 @@ sub find_paper_file { return $ret; } +sub setup_names { + my $prog = shift; + my $outcomp = $paper_config_path_component{$prog} + || $default_paper_config_path_component{$prog}; + my $filecomp = $paper_config_name{$prog} + || $default_paper_config_name{$prog}; + return ($outcomp, $filecomp); +} + # xdvi format: # /--- XDvi --- @@ -228,12 +258,12 @@ sub paper_xdvi { my $outtree = shift; my $newpaper = shift; - my $inp = &find_paper_file("xdvi", "other text files", "XDvi"); + my ($outcomp, $filecomp) = setup_names("xdvi"); + my $outfile = "$outtree/$outcomp/$filecomp"; + my $inp = &find_paper_file("xdvi", "other text files", $filecomp); + return unless $inp; - my $outcomp = $paper_config_path_component{"xdvi"} - || $default_paper_config_path_component{"xdvi"}; - my $outfile = "$outtree/$outcomp"; my @sizes = keys %xdvi_papersize; return &paper_do_simple($inp, "xdvi", '^\*paper: ', '^\*paper:\s+(\w+)\s*$', @@ -260,11 +290,10 @@ sub paper_pdftex { my $outtree = shift; my $newpaper = shift; - my $outcomp = $paper_config_path_component{"pdftex"} - || $default_paper_config_path_component{"pdftex"}; - my $outfile = "$outtree/$outcomp"; - - my $inp = &find_paper_file("pdftex", "tex", "pdftexconfig.tex"); + my ($outcomp, $filecomp) = setup_names("pdftex"); + my $outfile = "$outtree/$outcomp/$filecomp"; + my $inp = &find_paper_file("pdftex", "tex", $filecomp); + return unless $inp; open(FOO, "<$inp") || die "$0: open($inp) failed: $!"; @@ -405,13 +434,12 @@ sub paper_dvips { my $outtree = shift; my $newpaper = shift; - my $inp = &find_paper_file("dvips", "dvips config", "config.ps"); + my ($outcomp, $filecomp) = setup_names("dvips"); + my $outfile = "$outtree/$outcomp/$filecomp"; + my $inp = &find_paper_file("dvips", "dvips config", $filecomp); + return unless $inp; - my $outcomp = $paper_config_path_component{"dvips"} - || $default_paper_config_path_component{"dvips"}; - my $outfile = "$outtree/$outcomp"; - open(FOO, "<$inp") || die "$0: open($inp) failed: $!"; my @lines = ; close(FOO); @@ -511,9 +539,10 @@ sub paper_dvips { # sub do_dvipdfm_and_x { my ($inp,$prog,$outtree,$paplist,$newpaper) = @_; - my $outcomp = $paper_config_path_component{$prog} - || $default_paper_config_path_component{$prog}; - my $outfile = "$outtree/$outcomp"; + + my ($outcomp, $filecomp) = setup_names($prog); + my $outfile = "$outtree/$outcomp/$filecomp"; + return &paper_do_simple($inp, $prog, '^p\s+', '^p\s+(\w+)\s*$', sub { my ($ll,$np) = @_; @@ -526,7 +555,8 @@ sub paper_dvipdfm { my $outtree = shift; my $newpaper = shift; - my $inp = &find_paper_file("dvipdfm", "other text files", "config"); + my ($outcomp, $filecomp) = setup_names("dvipdfm"); + my $inp = &find_paper_file("dvipdfm", "other text files", $filecomp); return () unless $inp; my @sizes = keys %dvipdfm_papersize; @@ -537,7 +567,9 @@ sub paper_dvipdfmx { my $outtree = shift; my $newpaper = shift; - my $inp = &find_paper_file("dvipdfmx", "other text files", "dvipdfmx.cfg"); + my ($outcomp, $filecomp) = setup_names("dvipdfmx"); + + my $inp = &find_paper_file("dvipdfmx", "other text files", $filecomp); return () unless $inp; my @sizes = keys %dvipdfm_papersize; @@ -556,11 +588,9 @@ sub paper_context { my $outtree = shift; my $newpaper = shift; - my $outcomp = $paper_config_path_component{"context"} - || $default_paper_config_path_component{"context"}; - my $outfile = "$outtree/$outcomp"; - - my $inp = &find_paper_file("context", "tex", "cont-sys.tex", "cont-sys.rme"); + my ($outcomp, $filecomp) = setup_names("context"); + my $outfile = "$outtree/$outcomp/$filecomp"; + my $inp = &find_paper_file("context", "tex", $filecomp, "cont-sys.rme"); return () unless $inp; my @sizes = keys %pdftex_papersize; -- cgit v1.2.3