From f0434b7c89f5ad48065e0500fa8be29526c3f316 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 28 Jul 2015 05:41:29 +0000 Subject: paper handling - only call subs for packages that are installed git-svn-id: svn://tug.org/texlive/trunk@37973 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/scripts/texlive/tlmgr.pl | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'Master/texmf-dist/scripts') diff --git a/Master/texmf-dist/scripts/texlive/tlmgr.pl b/Master/texmf-dist/scripts/texlive/tlmgr.pl index 9df03c3108c..ff5c8ce67c1 100755 --- a/Master/texmf-dist/scripts/texlive/tlmgr.pl +++ b/Master/texmf-dist/scripts/texlive/tlmgr.pl @@ -1185,7 +1185,15 @@ sub action_paper { return($F_ERROR) } elsif (!defined($newpaper)) { # tlmgr paper => show all current sizes. - return TeXLive::TLPaper::paper_all($texmfconfig,undef); + my $ret = $F_OK; + for my $prog (sort keys %TeXLive::TLPaper::prog_to_pkg) { + my $pkg = $TeXLive::TLPaper::prog_to_pkg{$prog}; + if ($localtlpdb->get_package($pkg)) { + $ret |= TeXLive::TLPaper::do_paper($prog,$texmfconfig,undef); + } + } + return($ret); + # return TeXLive::TLPaper::paper_all($texmfconfig,undef); } elsif ($newpaper !~ /^(a4|letter)$/) { # tlmgr paper junk => complain. $newpaper = "the empty string" if !defined($newpaper); @@ -1194,11 +1202,24 @@ sub action_paper { } else { # tlmgr paper {a4|letter} => do it. return ($F_ERROR) if !check_on_writable(); - return (TeXLive::TLPaper::paper_all($texmfconfig,$newpaper)); + my $ret = $F_OK; + for my $prog (sort keys %TeXLive::TLPaper::prog_to_pkg) { + my $pkg = $TeXLive::TLPaper::prog_to_pkg{$prog}; + if ($localtlpdb->get_package($pkg)) { + $ret |= TeXLive::TLPaper::do_paper($prog,$texmfconfig,$newpaper); + } + } + return($ret); + # return (TeXLive::TLPaper::paper_all($texmfconfig,$newpaper)); } } else { # program-specific paper my $prog = $action; # first argument is the program to change + my $pkg = $TeXLive::TLPaper::prog_to_pkg{$prog}; + if (!$localtlpdb->get_package($pkg)) { + tlwarn("$prg: package $pkg is not installed - cannot adjust paper size!\n"); + return ($F_ERROR); + } my $arg = shift @ARGV; # get "paper" argument if (!defined($arg) || $arg ne "paper") { $arg = "the empty string." if ! $arg; -- cgit v1.2.3