summaryrefslogtreecommitdiff
path: root/Master/tlpkg/TeXLive/TLPaper.pm
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2015-07-28 06:42:13 +0000
committerNorbert Preining <preining@logic.at>2015-07-28 06:42:13 +0000
commit6f0c243a33cf1a67dfd89799999f6b4f4cf21710 (patch)
tree061ed51a9a4677df294aec285108d622ae53de2e /Master/tlpkg/TeXLive/TLPaper.pm
parentf0434b7c89f5ad48065e0500fa8be29526c3f316 (diff)
consolidate data structures in TLPaper.pm, adjust tlmgr code
git-svn-id: svn://tug.org/texlive/trunk@37974 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive/TLPaper.pm')
-rw-r--r--Master/tlpkg/TeXLive/TLPaper.pm115
1 files changed, 55 insertions, 60 deletions
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<TeXLive::TLPaper> -- 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<get_paper($prog)>
@@ -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);