summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl250
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdfbin808540 -> 808435 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdfbin809665 -> 809548 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdfbin812381 -> 812256 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdfbin806146 -> 806026 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdfbin810019 -> 809895 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdfbin806423 -> 806303 bytes
-rw-r--r--Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdfbin805223 -> 805088 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-new.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/context.mkii2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/context.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otj.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sel.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-con.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-act.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-noa.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-syn.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-files.pdfbin25656 -> 25664 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-lua.pdfbin424881 -> 424881 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-context.pdfbin812381 -> 812256 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdfbin60864 -> 60864 bytes
-rw-r--r--Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua10
23 files changed, 189 insertions, 122 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index facc7c47753..7f233bb6805 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,13 +1,13 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 44249 2017-05-08 17:26:47Z karl $
+# $Id: tlmgr.pl 44289 2017-05-11 02:41:34Z preining $
#
# Copyright 2008-2017 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
#
-my $svnrev = '$Revision: 44249 $';
-my $datrev = '$Date: 2017-05-08 19:26:47 +0200 (Mon, 08 May 2017) $';
+my $svnrev = '$Revision: 44289 $';
+my $datrev = '$Date: 2017-05-11 04:41:34 +0200 (Thu, 11 May 2017) $';
my $tlmgrrevision;
my $prg;
if ($svnrev =~ m/: ([0-9]+) /) {
@@ -274,6 +274,8 @@ my %action_specification = (
},
"remove" => {
"options" => {
+ "backup" => 1,
+ "backupdir" => "=s",
"dry-run|n" => 1,
"force" => 1,
"no-depends" => 1,
@@ -1011,8 +1013,28 @@ sub action_include_tlpobj {
# will absolutely only install foo bar baz not even taking .ARCH into
# account
#
+
+sub backup_and_remove_package {
+ my ($pkg, $autobackup) = @_;
+ my $tlp = $localtlpdb->get_package($pkg);
+ if (!defined($tlp)) {
+ info("$pkg: package not present, cannot remove\n");
+ return($F_WARNING);
+ }
+ if ($opts{"backup"}) {
+ $tlp->make_container("xz", $localtlpdb->root,
+ $opts{"backupdir"},
+ "${pkg}.r" . $tlp->revision,
+ $tlp->relocated);
+ if ($autobackup) {
+ # in case we do auto backups we remove older backups
+ clear_old_backups($pkg, $opts{"backupdir"}, $autobackup);
+ }
+ }
+ return($localtlpdb->remove_package($pkg));
+}
+
sub action_remove {
- my $ret = $F_OK;
# we do the following:
# - (not implemented) order collections such that those depending on
# other collections are first removed, and then those which only
@@ -1034,6 +1056,10 @@ sub action_remove {
init_local_db();
return($F_ERROR) if !check_on_writable();
info("$prg remove: dry run, no changes will be made\n") if $opts{"dry-run"};
+
+ my ($ret, $autobackup) = setup_backup_directory();
+ return ($ret) if ($ret != $F_OK);
+
my @packs = @ARGV;
#
# we have to be careful not to remove too many packages. The idea is
@@ -1099,7 +1125,7 @@ sub action_remove {
my $foo = 0;
info ("$prg: removing $pkg\n");
if (!$opts{"dry-run"}) {
- $foo = $localtlpdb->remove_package($pkg);
+ $foo = backup_and_remove_package($pkg, $autobackup);
logpackage("remove: $pkg");
}
if ($foo) {
@@ -1120,7 +1146,7 @@ sub action_remove {
if (!defined($already_removed{$pkg})) {
info ("$prg: removing package $pkg\n");
if (!$opts{"dry-run"}) {
- if ($localtlpdb->remove_package($pkg)) {
+ if (backup_and_remove_package($pkg, $autobackup)) {
# removal was successful
logpackage("remove: $pkg");
$already_removed{$pkg} = 1;
@@ -1503,46 +1529,56 @@ sub action_info {
print "longdesc: ", $tlp->longdesc, "\n" if ($tlp->longdesc);
print "installed: ", ($installed ? "Yes" : "No"), "\n";
print "revision: ", $tlp->revision, "\n" if ($installed);
- # print out sizes
+ #
+ # size computation: for normal packages give src/run/doc/bin sizes
+ # for scheme/collection accumulated (including deps) sizes
my $sizestr = "";
- my $srcsize = $tlp->srcsize * $TeXLive::TLConfig::BlockSize;
- $sizestr = sprintf("%ssrc: %dk", $sizestr, int($srcsize / 1024) + 1)
- if ($srcsize > 0);
- my $docsize = $tlp->docsize * $TeXLive::TLConfig::BlockSize;
- $sizestr .= sprintf("%sdoc: %dk",
- ($sizestr ? ", " : ""), int($docsize / 1024) + 1)
- if ($docsize > 0);
- my $runsize = $tlp->runsize * $TeXLive::TLConfig::BlockSize;
- $sizestr .= sprintf("%srun: %dk",
- ($sizestr ? ", " : ""), int($runsize / 1024) + 1)
- if ($runsize > 0);
- # check for .ARCH expansions
- my $do_archs = 0;
- for my $d ($tlp->depends) {
- if ($d =~ m/^(.*)\.ARCH$/) {
- $do_archs = 1;
- last;
+ if ($tlp->category ne "Collection" && $tlp->category ne "Scheme") {
+ my $srcsize = $tlp->srcsize * $TeXLive::TLConfig::BlockSize;
+ $sizestr = sprintf("%ssrc: %dk", $sizestr, int($srcsize / 1024) + 1)
+ if ($srcsize > 0);
+ my $docsize = $tlp->docsize * $TeXLive::TLConfig::BlockSize;
+ $sizestr .= sprintf("%sdoc: %dk",
+ ($sizestr ? ", " : ""), int($docsize / 1024) + 1)
+ if ($docsize > 0);
+ my $runsize = $tlp->runsize * $TeXLive::TLConfig::BlockSize;
+ $sizestr .= sprintf("%srun: %dk",
+ ($sizestr ? ", " : ""), int($runsize / 1024) + 1)
+ if ($runsize > 0);
+ # check for .ARCH expansions
+ my $do_archs = 0;
+ for my $d ($tlp->depends) {
+ if ($d =~ m/^(.*)\.ARCH$/) {
+ $do_archs = 1;
+ last;
+ }
}
- }
- if ($do_archs) {
- my @a = $localtlpdb->available_architectures;
- my %binsz = %{$tlp->binsize};
- my $binsize = 0;
- for my $a (@a) {
- $binsize += $binsz{$a} if defined($binsz{$a});
- my $atlp = $tlpdb->get_package($tlp->name . ".$a");
- if (!$atlp) {
- tlwarn("$prg: cannot find depending package" . $tlp->name . ".$a\n");
- $ret |= $F_WARNING;
- next;
+ if ($do_archs) {
+ my @a = $localtlpdb->available_architectures;
+ my %binsz = %{$tlp->binsize};
+ my $binsize = 0;
+ for my $a (@a) {
+ $binsize += $binsz{$a} if defined($binsz{$a});
+ my $atlp = $tlpdb->get_package($tlp->name . ".$a");
+ if (!$atlp) {
+ tlwarn("$prg: cannot find depending package" . $tlp->name . ".$a\n");
+ $ret |= $F_WARNING;
+ next;
+ }
+ my %abinsz = %{$atlp->binsize};
+ $binsize += $abinsz{$a} if defined($abinsz{$a});
}
- my %abinsz = %{$atlp->binsize};
- $binsize += $abinsz{$a} if defined($abinsz{$a});
+ $binsize *= $TeXLive::TLConfig::BlockSize;
+ $sizestr .= sprintf("%sbin: %dk",
+ ($sizestr ? ", " : ""), int($binsize / 1024) + 1)
+ if ($binsize > 0);
+ }
+ } else {
+ # case of collection or scheme
+ my $foo = $tlpdb->sizes_of_packages_with_deps ( 1, 1, undef, $pkg);
+ if (defined($foo->{$pkg})) {
+ $sizestr = sprintf("%dk", int($foo->{$pkg} / 1024) + 1);
}
- $binsize *= $TeXLive::TLConfig::BlockSize;
- $sizestr .= sprintf("%sbin: %dk",
- ($sizestr ? ", " : ""), int($binsize / 1024) + 1)
- if ($binsize > 0);
}
print "sizes: ", $sizestr, "\n";
print "relocatable: ", ($tlp->relocated ? "Yes" : "No"), "\n";
@@ -1783,6 +1819,53 @@ sub restore_one_package {
return ($F_OK);
}
+sub setup_backup_directory {
+ my $ret = $F_OK;
+ my $autobackup = 0;
+ # check for the tlpdb option autobackup, and if present and true (!= 0)
+ # assume we are doing backups
+ if (!$opts{"backup"}) {
+ $autobackup = $localtlpdb->option("autobackup");
+ if ($autobackup) {
+ # check the format, we currently allow only natural numbers, and -1
+ if ($autobackup eq "-1") {
+ debug ("Automatic backups activated, keeping all backups.\n");
+ $opts{"backup"} = 1;
+ } elsif ($autobackup eq "0") {
+ debug ("Automatic backups disabled.\n");
+ } elsif ($autobackup =~ m/^[0-9]+$/) {
+ debug ("Automatic backups activated, keeping $autobackup backups.\n");
+ $opts{"backup"} = 1;
+ } else {
+ tlwarn ("$prg: Option autobackup can only be an integer >= -1.\n");
+ tlwarn ("$prg: Disabling auto backups.\n");
+ $localtlpdb->option("autobackup", 0);
+ $autobackup = 0;
+ $ret |= $F_WARNING;
+ }
+ }
+ }
+
+ # cmd line --backup, we check for --backupdir, and if that is not given
+ # we try to get the default from the tlpdb. If that doesn't work, exit.
+ if ($opts{"backup"}) {
+ my ($a, $b) = check_backupdir_selection();
+ if ($a & $F_ERROR) {
+ # in all these cases we want to terminate in the non-gui mode
+ tlwarn($b);
+ return ($F_ERROR, $autobackup);
+ }
+ }
+
+ # finally, if we have --backupdir, but no --backup, just enable it
+ $opts{"backup"} = 1 if $opts{"backupdir"};
+
+ info("$prg: saving backups to $opts{'backupdir'}\n")
+ if $opts{"backup"} && !$::machinereadable;
+
+ return ($ret, $autobackup);
+}
+
sub check_backupdir_selection {
my $warntext = "";
if ($opts{"backupdir"}) {
@@ -2466,8 +2549,6 @@ sub upd_info {
}
sub action_update {
- my $ret = $F_OK;
-
init_local_db(1);
$opts{"no-depends"} = 1 if $opts{"no-depends-at-all"};
@@ -2512,47 +2593,8 @@ sub action_update {
}
}
- my $autobackup = 0;
- # check for the tlpdb option autobackup, and if present and true (!= 0)
- # assume we are doing backups
- if (!$opts{"backup"}) {
- $autobackup = $localtlpdb->option("autobackup");
- if ($autobackup) {
- # check the format, we currently allow only natural numbers, and -1
- if ($autobackup eq "-1") {
- debug ("Automatic backups activated, keeping all backups.\n");
- $opts{"backup"} = 1;
- } elsif ($autobackup eq "0") {
- debug ("Automatic backups disabled.\n");
- } elsif ($autobackup =~ m/^[0-9]+$/) {
- debug ("Automatic backups activated, keeping $autobackup backups.\n");
- $opts{"backup"} = 1;
- } else {
- tlwarn ("$prg: Option autobackup can only be an integer >= -1.\n");
- tlwarn ("$prg: Disabling auto backups.\n");
- $localtlpdb->option("autobackup", 0);
- $autobackup = 0;
- $ret |= $F_WARNING;
- }
- }
- }
-
- # cmd line --backup, we check for --backupdir, and if that is not given
- # we try to get the default from the tlpdb. If that doesn't work, exit.
- if ($opts{"backup"}) {
- my ($a, $b) = check_backupdir_selection();
- if ($a & $F_ERROR) {
- # in all these cases we want to terminate in the non-gui mode
- tlwarn($b);
- return ($F_ERROR);
- }
- }
-
- # finally, if we have --backupdir, but no --backup, just enable it
- $opts{"backup"} = 1 if $opts{"backupdir"};
-
- info("$prg: saving backups to $opts{'backupdir'}\n")
- if $opts{"backup"} && !$::machinereadable;
+ my ($ret, $autobackup) = setup_backup_directory();
+ return ($ret) if ($ret != $F_OK);
# these two variables are used throughout this function
my $root = $localtlpdb->root;
@@ -2920,17 +2962,8 @@ sub action_update {
debug("$prg: warn, relocated bit set for $p, but that is wrong!\n");
$pkg->relocated(0);
}
- if ($opts{"backup"}) {
- $pkg->make_container("xz", $root,
- $opts{"backupdir"},
- "${p}.r" . $pkg->revision,
- $pkg->relocated);
- if ($autobackup) {
- # in case we do auto backups we remove older backups
- clear_old_backups($p, $opts{"backupdir"}, $autobackup);
- }
- }
- $localtlpdb->remove_package($p);
+ # TODO we do not check return value here!
+ backup_and_remove_package($p, $autobackup);
logpackage("remove: $p");
}
info("done\n") unless $::machinereadable;
@@ -7344,10 +7377,14 @@ With the single word C<collections> or C<schemes> as the argument, lists
the request type instead of all packages.
With any other arguments, display information about I<pkg>: the name,
-category, short and long description, installation status, and TeX Live
+category, short and long description, sizes, installation status, and TeX Live
revision number. If I<pkg> is not locally installed, searches in the
remote installation source.
+For normal packages (not collections or schemes), the sizes of the
+four groups of files (run/src/doc/bin files) are shown. For collections
+and schemes the B<accumulated> size including depending packages.
+
If I<pkg> is not found locally or remotely, the search action is used
and lists matching packages and files.
@@ -7727,6 +7764,23 @@ package, dependencies are never removed. Options:
=over 4
+=item B<--backup> and B<--backupdir> I<directory>
+
+These two options control the creation of backups of packages I<before>
+removal; that is, backup of packages as currently installed. If
+neither of these options are given, no backup package will be saved. If
+C<--backupdir> is given and specifies a writable directory then a backup
+will be made in that location. If only C<--backup> is given, then a
+backup will be made to the directory previously set via the C<option>
+action (see below). If both are given then a backup will be made to the
+specified I<directory>.
+
+You can set options via the C<option> action to automatically create
+backups for all packages, and/or keep only a certain number of
+backups. Please see the C<option> action for details.
+
+The C<restore> action explains how to restore from a backup.
+
=item B<--no-depends>
Do not remove dependent packages.
@@ -8810,7 +8864,7 @@ This script and its documentation were written for the TeX Live
distribution (L<http://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 44249 2017-05-08 17:26:47Z karl $
+$Id: tlmgr.pl 44289 2017-05-11 02:41:34Z preining $
=cut
# to remake HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
index cd07f659fe8..36acb37d960 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
index b5f8e7ae36e..9424a661db5 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
index 361ff877c8b..b32bd0a856d 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
index cc936ec8a14..ae7c1d274a8 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
index 351ac920940..17160c27875 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
index 849b70ecec5..0598ce45e53 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
index d04e3709e82..50cf4462642 100644
--- a/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/Master/texmf-dist/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
index 293a87f1957..8d3267e35d1 100644
--- a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.05.09 10:14}
+\newcontextversion{2017.05.10 10:41}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/Master/texmf-dist/tex/context/base/mkii/context.mkii b/Master/texmf-dist/tex/context/base/mkii/context.mkii
index ee0cb8adf20..0386cce0c1e 100644
--- a/Master/texmf-dist/tex/context/base/mkii/context.mkii
+++ b/Master/texmf-dist/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.05.09 10:14}
+\edef\contextversion{2017.05.10 10:41}
%D For those who want to use this:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
index 8412a0bce13..e0596528288 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.05.09 10:14}
+\newcontextversion{2017.05.10 10:41}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
index be0623bd439..61c8370763d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.05.09 10:14}
+\edef\contextversion{2017.05.10 10:41}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
index fb526ecbbee..634f8a83c05 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
@@ -1021,7 +1021,7 @@ local function inject_everything(head,where)
-- end
if pn.checkmark then
local wn = getwidth(n) -- in arial marks have widths
- if wn ~= 0 then
+ if wn and wn ~= 0 then
wn = wn/2
if trace_injections then
report_injections("correcting non zero width mark %C",getchar(n))
@@ -1228,7 +1228,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm = i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end
@@ -1260,7 +1260,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm = i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end
@@ -1292,7 +1292,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm = i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
index 455310e145c..b4dd9a55565 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
@@ -562,7 +562,7 @@ function selectfont.registerfontalternative(alternative)
end
function selectfont.registerfallback(index)
- local data = data[index]
+ local data = data[index]
local fontclass = data.metadata.typeface
local fontstyle = data.metadata.style
local fallback = fallbacks[fontclass]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
index 65bb916316b..49b5952dfe5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
@@ -53,7 +53,10 @@ do -- eps | ps
local runner = sandbox.registerrunner {
name = "eps to pdf",
- program = { windows = "gswin64c", unix = "gs" },
+ program = {
+ windows = os.platform == "win64" and "gswin64c" or "gswin32c",
+ unix = "gs",
+ },
template = longtostring [[
-q
-sDEVICE=pdfwrite
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
index ee78b64f0ce..ead26bd4fd0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['math-act'] = {
-- Here we tweak some font properties (if needed).
local type, next = type, next
-local fastcopy = table.fastcopy
+local fastcopy, insert, remove = table.fastcopy, table.insert, table.remove
local formatters = string.formatters
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
@@ -674,6 +674,9 @@ end
function mathematics.injectfallbacks(target,original)
if #stack > 0 then
-- for now
+ if trace_collecting then
+ report_math("stack overflow in math fallbacks")
+ end
return
end
local properties = original.properties
@@ -684,7 +687,7 @@ function mathematics.injectfallbacks(target,original)
if fallbacks then
local definitions = fonts.collections.definitions[fallbacks]
if definitions then
- table.insert(stack, {
+ insert(stack, {
target = target,
original = original,
list = { },
@@ -710,7 +713,7 @@ function mathematics.injectfallbacks(target,original)
end
function mathematics.finishfallbacks()
- local top = table.remove(stack)
+ local top = remove(stack)
if not top then
report_math("finish error in math fallbacks")
return
@@ -725,7 +728,7 @@ function mathematics.finishfallbacks()
local fallbacks = specification.fallbacks
if fallbacks then
local definitions = fonts.collections.definitions[fallbacks]
- if definitions then
+ if definitions and #definitions > 0 then
if trace_collecting then
report_math("adding fallback characters to font %a",specification.hash)
end
@@ -770,6 +773,7 @@ function mathematics.finishfallbacks()
end
characters[unic] = copiedglyph(target,characters,chars,unicode,index)
done[unic] = true
+ else
end
end
for unicode = start, stop do
@@ -786,6 +790,8 @@ function mathematics.finishfallbacks()
xlist = nil
xtarget = nil
xoriginal = nil
+ elseif trace_collecting then
+ report_math("no fallback characters added to font %a",specification.hash)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
index 3a45bb30d47..4db35c2d6f8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
@@ -23,6 +23,7 @@ if not modules then modules = { } end modules ['math-noa'] = {
-- nota bene: uunderdelimiter uoverdelimiter etc are radicals (we have 5 types)
+local next, tonumber = next, tonumber
local utfchar, utfbyte = utf.char, utf.byte
local formatters, gmatch = string.formatters, string.gmatch
local sortedhash = table.sortedhash
@@ -378,7 +379,6 @@ noads.process = processnoads
noads.processnested = processnested
noads.processouter = process
-
-- experiment (when not present fall back to fam 0) -- needs documentation
local unknowns = { }
@@ -541,7 +541,8 @@ do
processors.relocate = { }
local function report_remap(tag,id,old,new,extra)
- report_remapping("remapping %s in font %s from %C to %C%s",tag,id,old,new,extra)
+ report_remapping("remapping %s in font (%s,%s) from %C to %C%s",
+ tag,id,fontdata[id].properties.fontname or "",old,new,extra)
end
local remapalphabets = mathematics.remapalphabets
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
index 31243cd6033..1b8e0738215 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
@@ -67,6 +67,9 @@ local get_synctex_fields = nuts.get_synctex_fields
local set_synctex_fields = nuts.set_synctex_fields
local set_syntex_tag = nodes.set_synctex_tag
+local getcount = tex.getcount
+local setcount = tex.setcount
+
local getpos = function()
getpos = backends.codeinjections.getpos
return getpos()
@@ -480,11 +483,11 @@ local synctex = false
directives.register("system.synctex", function(v)
if v == "context" then
luatex.synctex.enable()
- tex.normalsynctex = 0
+ setcount("normalsynctex",0)
synctex = true
else
v = tonumber(v) or (toboolean(v,true) and 1) or (v == "zipped" and 1) or (v == "unzipped" and -1) or 0
- tex.normalsynctex = v
+ setcount("normalsynctex",v)
synctex = v ~= 0
end
if synctex then
@@ -495,7 +498,7 @@ directives.register("system.synctex", function(v)
end)
statistics.register("synctex tracing",function()
- if synctex or tex.normalsynctex ~= 0 then
+ if synctex or getcount("normalsynctex") ~= 0 then
return "synctex has been enabled (extra log file generated)"
end
end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
index c6da00b9129..4948cc2fb5a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
index 89f2632f33a..16575aea777 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
index 361ff877c8b..b32bd0a856d 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
index 32a57f49721..e0cfaf5b30a 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua b/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
index 90e4e762443..953d2bf008b 100644
--- a/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 05/09/17 10:14:12
+-- merge date : 05/10/17 10:41:46
do -- begin closure to overcome local limits and interference
@@ -19827,7 +19827,7 @@ local function inject_everything(head,where)
ox=px-pn.markx
if pn.checkmark then
local wn=getwidth(n)
- if wn~=0 then
+ if wn and wn~=0 then
wn=wn/2
if trace_injections then
report_injections("correcting non zero width mark %C",getchar(n))
@@ -20014,7 +20014,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm=i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end
@@ -20044,7 +20044,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm=i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end
@@ -20074,7 +20074,7 @@ local function inject_everything(head,where)
if hasmarks then
local pm=i.markbasenode
if pm then
- processmark(pm,current,i)
+ processmark(pm,n,i)
end
end
end