diff options
author | Norbert Preining <preining@logic.at> | 2011-08-05 06:27:04 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2011-08-05 06:27:04 +0000 |
commit | d68992e6b7de4c94e6841019eb3b27e725c1fae4 (patch) | |
tree | 08934aa06a8f4f28be1a29f90cff76c118f77f04 | |
parent | 9506bed78f3e725e6de5b7ff852e9344e25bc857 (diff) |
fix some bugs in depending format handling
git-svn-id: svn://tug.org/texlive/trunk@23420 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Master/texmf/scripts/texlive/tlmgr.pl | 45 | ||||
-rw-r--r-- | Master/tlpkg/TeXLive/TLUtils.pm | 6 |
2 files changed, 34 insertions, 17 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl index 9465942d9ac..9461482be3f 100755 --- a/Master/texmf/scripts/texlive/tlmgr.pl +++ b/Master/texmf/scripts/texlive/tlmgr.pl @@ -555,7 +555,13 @@ sub do_cmd_and_check # tlmgr front ends (MacOSX's TeX Live Utility) can read it # and show it to the user before the possibly long delay. info("running $cmd ...\n"); - my ($out, $ret) = TeXLive::TLUtils::run_cmd("$cmd 2>&1"); + my ($out, $ret); + if ($opts{"dry-run"}) { + $ret = 0; + $out = ""; + } else { + ($out, $ret) = TeXLive::TLUtils::run_cmd("$cmd 2>&1"); + } if ($ret == 0) { info("done running $cmd.\n"); log("--output of $cmd:\n$out\n--end of output of $cmd."); @@ -670,18 +676,25 @@ sub handle_execute_actions # we are currently only caring for package "latex" and "tex". If # one of these has changed, we search for all packages *depending* # on latex/tex and regenerate all formats in these packages. - my @check_indirect_formats; - push @check_indirect_formats, $localtlpdb->needed_by("latex") - if ($::latex_updated); - push @check_indirect_formats, $localtlpdb->needed_by("tex") - if ($::tex_updated); - for my $p (@check_indirect_formats) { - my $tlp = $localtlpdb->get_package($p); - if (!defined($tlp)) { - tlwarn("$p mentioned but not found in local tlpdb, strange!\n"); - next; - } - TeXLive::TLUtils::announce_execute_actions("enable", $tlp, "format"); + # + # do this only if we are not in --list or --dry-run mode + if (!$opts{"list"}) { + my @check_indirect_formats; + # TODO: + # in case that hyphenation patterns are changed, ie $regenerate_language + # then maybe we don't need to update latex based ones? + push @check_indirect_formats, $localtlpdb->needed_by("latex") + if ($::latex_updated); + push @check_indirect_formats, $localtlpdb->needed_by("tex") + if ($::tex_updated); + for my $p (@check_indirect_formats) { + my $tlp = $localtlpdb->get_package($p); + if (!defined($tlp)) { + tlwarn("$p mentioned but not found in local tlpdb, strange!\n"); + next; + } + TeXLive::TLUtils::announce_execute_actions("enable", $tlp, "format"); + } } # format-regenerate is used when the paper size changes. In that @@ -2855,8 +2868,10 @@ sub action_update { # special check for depending format updates: # if one of latex or tex has been updated, we rebuild the formats # defined in packages *depending* on these packages. - TeXLive::TLUtils::announce_execute_actions("latex-updated") if ($updated{"latex"}); - TeXLive::TLUtils::announce_execute_actions("tex-updated") if ($updated{"tex"}); + if (!$opts{"list"}) { + TeXLive::TLUtils::announce_execute_actions("latex-updated") if ($updated{"latex"}); + TeXLive::TLUtils::announce_execute_actions("tex-updated") if ($updated{"tex"}); + } print "end-of-updates\n" if $::machinereadable; diff --git a/Master/tlpkg/TeXLive/TLUtils.pm b/Master/tlpkg/TeXLive/TLUtils.pm index 50a41ff3098..24175964c84 100644 --- a/Master/tlpkg/TeXLive/TLUtils.pm +++ b/Master/tlpkg/TeXLive/TLUtils.pm @@ -1857,8 +1857,10 @@ sub announce_execute_actions { $what = "map format hyphen" if (!defined($what)); foreach my $e ($tlp->executes) { if ($e =~ m/^add((Mixed)?Map)\s+([^\s]+)\s*$/) { - $::execute_actions{$type}{'maps'}{$3} = "$1" - if ($what =~ m/map/); + # save the refs as we have another =~ grep in the following lines + my $a = $1; + my $b = $3; + $::execute_actions{$type}{'maps'}{$b} = $a if ($what =~ m/map/); } elsif ($e =~ m/^AddFormat\s+(.*)\s*$/) { my %r = TeXLive::TLUtils::parse_AddFormat_line("$1"); if (defined($r{"error"})) { |