summaryrefslogtreecommitdiff
path: root/Master/texmf/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/scripts')
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl70
1 files changed, 40 insertions, 30 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index da79c195ec6..9e1ca3afd96 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -633,11 +633,42 @@ sub handle_execute_actions
$errors += do_cmd_and_check("updmap-sys") if $updmap_run_needed;
}
+ # format relevant things
+ # we first have to check if the config files, that is fmtutil.cnf
+ # or one of the language* files have changed, regenerate them
+ # if necessary, and then run the necessary fmtutil calls.
- # format-regenerate is used when the paper size changes. In that
- # case, if option("create_formats") is set, we simply want to generate
- #
{
+ # first check for language* files
+ my $regenerate_language = 0;
+ for my $m (keys %{$::execute_actions{'enable'}{'hyphens'}}) {
+ $regenerate_language = 1;
+ last;
+ }
+ for my $m (keys %{$::execute_actions{'disable'}{'hyphens'}}) {
+ $regenerate_language = 1;
+ last;
+ }
+ if ($regenerate_language) {
+ for my $ext ("dat", "def", "dat.lua") {
+ my $lang = "language.$ext";
+ info("regenerating $lang\n");
+ my $arg1 = "$TEXMFSYSVAR/tex/generic/config/language.$ext";
+ my $arg2 = "$TEXMFLOCAL/tex/generic/config/language-local.$ext";
+ if ($ext eq "dat") {
+ TeXLive::TLUtils::create_language_dat($localtlpdb, $arg1, $arg2);
+ } elsif ($ext eq "def") {
+ TeXLive::TLUtils::create_language_def($localtlpdb, $arg1, $arg2);
+ } else {
+ TeXLive::TLUtils::create_language_lua($localtlpdb, $arg1, $arg2);
+ }
+ }
+ }
+
+ # format-regenerate is used when the paper size changes. In that
+ # case, if option("create_formats") is set, we simply want to generate
+ # all formats
+ #
my %done_formats;
my %updated_engines;
my %format_to_engine;
@@ -683,37 +714,16 @@ sub handle_execute_actions
$done_formats{$f} = 1;
}
}
- }
- #
- # hyphenation patterns
- # if something has changed do the whole stuff ...
- {
- my $do_something = 0;
- for my $m (keys %{$::execute_actions{'enable'}{'hyphens'}}) {
- $do_something = 1;
- last;
- }
- for my $m (keys %{$::execute_actions{'disable'}{'hyphens'}}) {
- $do_something = 1;
- last;
- }
+ # now go back to the hyphenation patterns and regenerate formats
+ # based on the various language files
+ # this of course will in some cases duplicate fmtutil calls,
+ # but it is much easier than actually checking which formats
+ # don't need to be updated
- if ($do_something) {
+ if ($regenerate_language) {
for my $ext ("dat", "def", "dat.lua") {
my $lang = "language.$ext";
- info("regenerating $lang\n");
-
- my $arg1 = "$TEXMFSYSVAR/tex/generic/config/language.$ext";
- my $arg2 = "$TEXMFLOCAL/tex/generic/config/language-local.$ext";
- if ($ext eq "dat") {
- TeXLive::TLUtils::create_language_dat($localtlpdb, $arg1, $arg2);
- } elsif ($ext eq "def") {
- TeXLive::TLUtils::create_language_def($localtlpdb, $arg1, $arg2);
- } else {
- TeXLive::TLUtils::create_language_lua($localtlpdb, $arg1, $arg2);
- }
-
if (! TeXLive::TLUtils::win32()) {
# Use full path for external command, except on Windows.
$lang = "$TEXMFSYSVAR/tex/generic/config/$lang";