diff options
Diffstat (limited to 'Master/texmf-dist')
-rwxr-xr-x | Master/texmf-dist/scripts/texlive/tlmgr.pl | 25 |
1 files changed, 23 insertions, 2 deletions
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; |