From 6f0c243a33cf1a67dfd89799999f6b4f4cf21710 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 28 Jul 2015 06:42:13 +0000 Subject: consolidate data structures in TLPaper.pm, adjust tlmgr code git-svn-id: svn://tug.org/texlive/trunk@37974 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/TeXLive/TLPaper.pm | 115 +++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 60 deletions(-) (limited to 'Master/tlpkg/TeXLive/TLPaper.pm') diff --git a/Master/tlpkg/TeXLive/TLPaper.pm b/Master/tlpkg/TeXLive/TLPaper.pm index 008cca9d662..06c8dd2e5ca 100644 --- a/Master/tlpkg/TeXLive/TLPaper.pm +++ b/Master/tlpkg/TeXLive/TLPaper.pm @@ -29,7 +29,6 @@ BEGIN { @EXPORT_OK = qw( %paper_config_path_component %paper_config_name - %prog_to_pkg ); @EXPORT = @EXPORT_OK; } @@ -53,52 +52,49 @@ C -- paper size setting use TeXLive::TLUtils qw(:DEFAULT dirname merge_into mkdirhier); use TeXLive::TLConfig; -# -# removed the entry for dvipdfm -# otherwise we continue generating files for dvipdfm -# "dvipdfm" => \&paper_dvipdfm, -my %paper_sub = ( - "xdvi" => \&paper_xdvi, - "pdftex" => \&paper_pdftex, - "dvips" => \&paper_dvips, - "dvipdfmx" => \&paper_dvipdfmx, - "context" => \&paper_context, - "psutils" => \&paper_psutils, -); - -# Where to write to by default. -my %default_paper_config_path_component = ( - "xdvi" => "xdvi", - "pdftex" => "tex/generic/config", - "dvips" => "dvips/config", - "dvipdfmx" => "dvipdfmx", - "dvipdfm" => "dvipdfm", - "context" => "tex/context/user", - "psutils" => "psutils", -); - -my %default_paper_config_name = ( - "xdvi" => "XDvi", - "pdftex" => "pdftexconfig.tex", - "dvips" => "config.ps", - "dvipdfmx" => "dvipdfmx.cfg", - "dvipdfm" => "config", - "context" => "cont-sys.tex", - "psutils" => "paper.cfg", -); -# seems superficial, but we don't have a guarantee -# that the package names and the 'call' names are -# always the same. -our %prog_to_pkg = ( - "xdvi" => 'xdvi', - "pdftex" => 'pdftex', - "dvips" => 'dvips', - "dvipdfmx" => 'dvipdfmx', - "context" => 'context', - "psutils" => 'psutils', +# +# paper data +# +our %paper = ( + "xdvi" => { + sub => \&paper_xdvi, + default_component => "xdvi", + default_file => "XDvi", + pkg => "xdvi", + }, + "pdftex" => { + sub => \&paper_pdftex, + default_component => "tex/generic/config", + default_file => "pdftexconfig.tex", + pkg => "pdftex", + }, + "dvips" => { + sub => \&paper_dvips, + default_component => "dvips/config", + default_file => "config.ps", + pkg => "dvips", + }, + "dvipdfmx" => { + sub => \&paper_dvipdfmx, + default_component => "dvipdfmx", + default_file => "dvipdfmx.cfg", + pkg => "dvipdfmx", + }, + "context" => { + sub => \&paper_context, + default_component => "tex/context/user", + default_file => "cont-sys.tex", + pkg => "context", + }, + "psutils" => { + sub => \&paper_psutils, + default_component => "psutils", + default_file => "paper.cfg", + pkg => "psutils", + }, ); - + # Output is done to the components in this hash. # If a value is undefined, we take the one from %default_... # @@ -186,7 +182,7 @@ the currently selected one. sub get_paper_list { my $prog = shift; - return ( &{$paper_sub{$prog}} ( "/dummy", "--returnlist" ) ); + return ( &{$paper{$prog}{'sub'}} ( "/dummy", "--returnlist" ) ); } =item C @@ -211,8 +207,8 @@ otherwise one of the standard flags (see TeXLive::TLConfig). sub do_paper { my ($prog,$texmfsysconfig,@args) = @_; - if (exists $paper_sub{$prog}) { - my $sub = $paper_sub{$prog}; + if (exists $paper{$prog}{'sub'}) { + my $sub = $paper{$prog}{'sub'}; return(&$sub($texmfsysconfig, @args)); } else { tlwarn("$0: unknown paper program $prog ($texmfsysconfig,@args)\n"); @@ -232,8 +228,8 @@ values of the single subroutine returns. sub paper_all { my $ret = $F_OK; - for my $p (sort keys %paper_sub) { - $ret |= &{$paper_sub{$p}} (@_); + for my $p (sort keys %paper) { + $ret |= &{$paper{$p}{'sub'}} (@_); } return($ret); } @@ -264,9 +260,9 @@ sub find_paper_file { sub setup_names { my $prog = shift; my $outcomp = $paper_config_path_component{$prog} - || $default_paper_config_path_component{$prog}; + || $paper{$prog}{'default_component'}; my $filecomp = $paper_config_name{$prog} - || $default_paper_config_name{$prog}; + || $paper{$prog}{'default_file'}; return ($outcomp, $filecomp); } @@ -286,7 +282,7 @@ sub paper_xdvi { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("xdvi"); - my $dftfile = $default_paper_config_name{"xdvi"}; + my $dftfile = $paper{'xdvi'}{'default_file'}; my $outfile = "$outtree/$outcomp/$filecomp"; my $inp = &find_paper_file("xdvi", "other text files", $filecomp, $dftfile); @@ -317,9 +313,8 @@ sub paper_xdvi { sub paper_pdftex { my $outtree = shift; my $newpaper = shift; - my ($outcomp, $filecomp) = setup_names("pdftex"); - my $dftfile = $default_paper_config_name{"pdftex"}; + my $dftfile = $paper{'pdftex'}{'default_file'}; my $outfile = "$outtree/$outcomp/$filecomp"; my $inp = &find_paper_file("pdftex", "tex", $filecomp, $dftfile); @@ -468,7 +463,7 @@ sub paper_dvips { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("dvips"); - my $dftfile = $default_paper_config_name{"dvips"}; + my $dftfile = $paper{'dvips'}{'default_file'}; my $outfile = "$outtree/$outcomp/$filecomp"; my $inp = &find_paper_file("dvips", "dvips config", $filecomp, $dftfile); @@ -592,7 +587,7 @@ sub paper_dvipdfm { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("dvipdfm"); - my $dftfile = $default_paper_config_name{"dvipdfm"}; + my $dftfile = $paper{'dvipdfm'}{'default_file'}; my $inp = &find_paper_file("dvipdfm", "other text files", $filecomp, $dftfile); return ($F_ERROR) unless $inp; @@ -605,7 +600,7 @@ sub paper_dvipdfmx { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("dvipdfmx"); - my $dftfile = $default_paper_config_name{"dvipdfmx"}; + my $dftfile = $paper{'dvipdfmx'}{'default_file'}; my $inp = &find_paper_file("dvipdfmx", "other text files", $filecomp, $dftfile); return ($F_ERROR) unless $inp; @@ -627,7 +622,7 @@ sub paper_context { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("context"); - my $dftfile = $default_paper_config_name{"context"}; + my $dftfile = $paper{'context'}{'default_file'}; my $outfile = "$outtree/$outcomp/$filecomp"; my $inp = &find_paper_file("context", "tex", $filecomp, "cont-sys.rme", $dftfile); return ($F_ERROR) unless $inp; @@ -658,7 +653,7 @@ sub paper_psutils { my $newpaper = shift; my ($outcomp, $filecomp) = setup_names("psutils"); - my $dftfile = $default_paper_config_name{"psutils"}; + my $dftfile = $paper{'psutils'}{'default_file'}; my $outfile = "$outtree/$outcomp/$filecomp"; my $inp = &find_paper_file("psutils", "other text files", $filecomp, $dftfile); -- cgit v1.2.3