summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-01-16 22:25:10 +0000
committerKarl Berry <karl@freefriends.org>2021-01-16 22:25:10 +0000
commit0399b5338a37aca0a26e7dbd5a04bca07d9e2151 (patch)
treeff5d3d0dadacd9a23c024525ef987ef43ac255ce
parent8bb8543ef19641038280016321028f3b2db2e7e5 (diff)
luaotfload (16jan21)
git-svn-id: svn://tug.org/texlive/trunk@57443 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua4
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl10
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl478
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/NEWS5
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/README.md4
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/filegraph.pdfbin40030 -> 41362 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdfbin77331 -> 78522 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdfbin493305 -> 501958 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex12
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdfbin76773 -> 78960 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst4
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst4
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdfbin21696 -> 21837 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdfbin8566 -> 8559 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdfbin8486 -> 8479 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/luaotfload-tool.12
-rw-r--r--Master/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdfbin43728 -> 43914 bytes
-rw-r--r--Master/texmf-dist/doc/man/man5/luaotfload.conf.52
-rw-r--r--Master/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdfbin44584 -> 44775 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/luaotfload/luaotfload-tool.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua (renamed from Master/texmf-dist/tex/luatex/luaotfload/fontloader-2020-12-30.lua)179
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-cff.lua15
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-con.lua16
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-dsp.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-imp-italics.lua18
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-otl.lua2
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-ots.lua3
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua17
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-case-el.lua294
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-diagnostics.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-dvi.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fakesc.lua204
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-filelist.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-glyphlist.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua186
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload.sty4
59 files changed, 1082 insertions, 497 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua b/Build/source/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
index fd66a9f79c8..0c583639033 100755
--- a/Build/source/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
+++ b/Build/source/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
@@ -9,8 +9,8 @@
local ProvidesLuaModule = {
name = "luaotfload-tool",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload-tool / database functionality",
license = "GPL v2.0"
}
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index c36156cf286..08f53ab5f6f 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,12 +1,12 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 57119 2020-12-12 23:40:00Z karl $
+# $Id: tlmgr.pl 57424 2021-01-15 02:30:58Z preining $
#
# Copyright 2008-2020 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
-my $svnrev = '$Revision: 57119 $';
-my $datrev = '$Date: 2020-12-13 00:40:00 +0100 (Sun, 13 Dec 2020) $';
+my $svnrev = '$Revision: 57424 $';
+my $datrev = '$Date: 2021-01-15 03:30:58 +0100 (Fri, 15 Jan 2021) $';
my $tlmgrrevision;
my $tlmgrversion;
my $prg;
@@ -872,7 +872,7 @@ sub do_cmd_and_check {
sub handle_execute_actions {
my $errors = 0;
- my $sysmode = ($opts{"usermode"} ? "" : "-sys");
+ my $sysmode = ($opts{"usermode"} ? "-user" : "-sys");
my $invoke_fmtutil = "fmtutil$sysmode $common_fmtutil_args";
if ($::files_changed) {
@@ -10113,7 +10113,7 @@ This script and its documentation were written for the TeX Live
distribution (L<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 57119 2020-12-12 23:40:00Z karl $
+$Id: tlmgr.pl 57424 2021-01-15 02:30:58Z preining $
=cut
# test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html
diff --git a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
index 6b363dbb884..0522d505c16 100755
--- a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
+++ b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
@@ -683,11 +683,12 @@ proc update_globals {} {
proc display_packages_info {} {
# do_debug [get_stacktrace]
- set curr [.pksearch.e get]
+ set curr [.pkfilter.search_e get]
.pkglist delete [.pkglist children {}]
dict for {nm pk} $::filtered {
set do_show 0
if {$curr eq ""} {
+ # empty search string
set do_show 1
} elseif {[search_nocase $curr $nm] >= 0} {
set do_show 1
@@ -701,19 +702,37 @@ proc display_packages_info {} {
}
} ; # display_packages_info
-# (re)create ::filtered dictionary; disregard search string.
+proc for_other_platform {nm} {
+ set r [string last "." $nm]
+ if {$r < 0} {
+ return 0
+ } else {
+ set n [string range $nm 0 [expr {$r-1}]]
+ set p [string range $nm [expr {$r+1}] end]
+ # p a platform identifier of an installed platform?
+ if [dict exists $::platforms $p] {
+ return [expr {! [dict get $::platforms $p "cur"]}]
+ } else {
+ return 0
+ }
+ }
+}
+
+# (re)create ::filtered dictionary; disregard search string in selection
# The value associated with each key/package is a list, not another dict.
proc collect_filtered {} {
do_debug \
"collect_filtered for $::stat_opt and $::dtl_opt"
- # test this beforehand
if {$::stat_opt ne "inst" && ! $::have_remote} {
+ # have_remote should have been ensured when changing stat_opt from inst
err_exit "collect_filtered should not have been invoked at this time"
}
foreach nm [dict keys $::filtered] {
dict unset ::filtered $nm
}
foreach nm [lsort [dict keys $::pkgs]] {
+ # do not list packages for platforms which are not installed
+ if [for_other_platform $nm] continue
set pk [dict get $::pkgs $nm]
set do_show 1
set mrk [mark_sym [dict get $pk marked]]
@@ -722,6 +741,8 @@ proc collect_filtered {} {
set ct [dict get $pk category]
if {$::stat_opt eq "inst" && $lr == 0} {
set do_show 0
+ } elseif {$::stat_opt eq "notins" && $lr > 0} {
+ set do_show 0
} elseif {$::stat_opt eq "upd" && ($lr == 0 || $rr == 0 || $rr <= $lr)} {
set do_show 0
}
@@ -740,7 +761,7 @@ proc collect_filtered {} {
set v [dict get $pk localrev]
set lv [dict get $pk lcatv]
if {$v eq "0" || $v == 0} {
- set v ""
+ set v "" ; # can this happen?
} elseif {$lv != 0 && $lv ne ""} {
set v "$v ($lv)"
}
@@ -766,14 +787,16 @@ proc get_platforms {} {
# guarantee fresh start
foreach k $::platforms {dict unset ::platforms $k}
set ::platforms [dict create]
- run_cmd_waiting "platform list"
- foreach l $::out_log {
- if [regexp {^\(i\)\s+(\S+)\s*$} $l dum plname] {
- set pl [dict create "cur" 1 "fut" 1]
- dict set ::platforms $plname $pl
- } elseif [regexp {^\s+(\S+)\s*$} $l dum plname] {
- set pl [dict create "cur" 0 "fut" 0]
- dict set ::platforms $plname $pl
+ # find binary packages for pdftex; 'platform list' not available on windows
+ foreach k [dict keys $::pkgs {pdftex.*}] {
+ # {pdftex.*} is a glob pattern, not a regexp: '.' is a literal
+ set plname [string range $k 7 end]
+ if {[dict get $::pkgs $k localrev] > 0} {
+ dict set ::platforms $plname "cur" 1
+ #dict set ::platforms $plname "fut" 1
+ } else {
+ dict set ::platforms $plname "cur" 0
+ #dict set ::platforms $plname "fut" 0
}
}
}
@@ -842,7 +865,7 @@ proc splash_loading {} {
wm title .loading [__ "Loading"]
# wallpaper
- pack [ttk::frame .loading.bg -padding 3] -fill both -expand 1
+ pack [ttk::frame .loading.bg -padding 3pt] -fill both -expand 1
set lbl [__ \
"If loading takes too long, press Abort and choose another repository."]
@@ -944,9 +967,7 @@ proc get_packages_info_remote {} {
## update ::pkgs after installing packages without going online again.
proc update_local_revnumbers {} {
do_debug "update_local_revnumbers"
- set catv "lcat-version"
- if {[dict get $::pkgs texlive.infra localrev] < 56458} { set catv "cat-version" }
- run_cmd_waiting "info --only-installed --data name,localrev,$catv"
+ run_cmd_waiting "info --only-installed --data name,localrev,lcat-version"
set re {^([^,]+),([0-9]+),(.*)$}
dict for {pk pk_dict} $::pkgs {
do_debug "zeroing local data for $pk"
@@ -1150,8 +1171,12 @@ proc show_repos {} {
foreach ch [winfo children $w] {destroy $ch}
set nms [array names ::repos]
set c [llength $nms]
- grid [ttk::label $w.head -font TkHeadingFont] \
- -row 0 -column 0 -columnspan 2 -sticky w
+ grid [ttk::frame $w.repoheadframe] \
+ -row 0 -column 0 -columnspan 3 -sticky w
+ pack [ttk::label $w.head -font hfont] \
+ -in $w.repoheadframe -side left
+ pack [ttk::label $w.load -text ""] \
+ -in $w.repoheadframe -side left -anchor sw
if {$c <= 0} {
$w.head configure -text [__ "No repositories"]
return
@@ -1161,8 +1186,7 @@ proc show_repos {} {
$w.head configure -text [__ "Multiple repositories"]
}
if {! $::have_remote} {
- pgrid [ttk::label $w.load -text [__ "Not loaded"]] \
- -sticky nw -row 0 -column 1
+ $w.load configure -text " ([__ "Not loaded"])"
}
set repodict [dict create]
if $::have_remote {
@@ -1318,10 +1342,10 @@ proc repository_dialog {} {
### add/remove tlcontrib ###
ttk::label .tlr.contribt -text [__ "tlcontrib additional repository"] \
-font bfont
- pack .tlr.contribt -in .tlr.bg -anchor w -padx 3 -pady [list 10 3]
- pack [ttk::label .tlr.contribl] -in .tlr.bg -anchor w -padx 3 -pady 3
+ pack .tlr.contribt -in .tlr.bg -anchor w -padx 3pt -pady [list 10pt 3pt]
+ pack [ttk::label .tlr.contribl] -in .tlr.bg -anchor w -padx 3pt -pady 3pt
ttk::checkbutton .tlr.contribb -variable ::toggle_contrib
- pack .tlr.contribb -in .tlr.bg -anchor w -padx 3 -pady [list 3 10]
+ pack .tlr.contribb -in .tlr.bg -anchor w -padx 3pt -pady [list 3pt 10pt]
set ::toggle_contrib 0
set has_contrib 0
foreach nm [array names ::repos] {
@@ -1340,7 +1364,7 @@ proc repository_dialog {} {
}
# two ways to close the dialog
- pack [ttk::frame .tlr.closebuttons] -pady [list 10 0] -in .tlr.bg -fill x
+ pack [ttk::frame .tlr.closebuttons] -pady [list 10pt 0pt] -in .tlr.bg -fill x
ttk::button .tlr.save -text [__ "Save and Load"] -command save_load_repo
ppack .tlr.save -in .tlr.closebuttons -side right
dis_enable_reposave
@@ -1356,122 +1380,132 @@ proc repository_dialog {} {
### platforms
-if {$::tcl_platform(platform) ne "windows"} {
+# ::platforms is a dictionary of dictionaries.
+# each element dictionary has keys cur and fut indicating
+# current and future status (i.e. being installed),
+# with values 0 meaning 'not installed' and 1 meaning 'installed'.
+# elsewhere, we shall only be interested in cur.
+# within the treeview list, we shall use the usual unicode mark symbols.
- proc toggle_pl_marked {pl cl} {
- # toggle_pl_marked is triggered by a mouse click only in column #1.
- # 'fut'[ure] should get updated in ::platforms _and_ in .tlpl.pl.
-
- if {$cl ne "#1"} return
- if {$pl eq $::our_platform} {
- tk_messageBox -message \
- [__ "Cannot remove own platform %s" $::our_platform] \
- -parent .tlpl
- return
- }
- # $mrk: negation of current value of marked for $pl
- set m1 [expr {[dict get $::platforms $pl "fut"] ? 0 : 1}]
- dict set ::platforms $pl "fut" $m1
- set m0 [dict get $::platforms $pl "cur"]
- if {$m0 == $m1} {
- .tlpl.pl set $pl "sup" [mark_sym $m0]
- } else {
- .tlpl.pl set $pl "sup" "[mark_sym $m0] \u21d2 [mark_sym $m1]"
- }
- .tlpl.do state disabled
- dict for {p mrks} $::platforms {
- if {[dict get $mrks "fut"] ne [dict get $mrks "cur"]} {
- .tlpl.do state !disabled
- break
- }
+# for windows, there is no platforms menu entry,
+# and the platforms dialog returns immediately, i.e. is a no-op.
+
+proc toggle_pl_marked {pl cl} {
+ # toggle_pl_marked is triggered by a mouse click only in column #1.
+ # 'fut'[ure] should get updated in ::platforms _and_ in .tlpl.pl.
+
+ if {$cl ne "#1"} return
+ if {$pl eq $::our_platform} {
+ tk_messageBox -message \
+ [__ "Cannot remove own platform %s" $::our_platform] -parent .tlpl
+ return
+ }
+ set m1 [expr {[dict get $::platforms $pl "fut"] ? 0 : 1}]
+ dict set ::platforms $pl "fut" $m1
+ set m0 [dict get $::platforms $pl "cur"]
+ if {$m0 == $m1} {
+ .tlpl.pl set $pl "stat" [mark_sym $m0]
+ } else {
+ .tlpl.pl set $pl "stat" "[mark_sym $m0] \u21d2 [mark_sym $m1]"
+ }
+ # any changes to apply?
+ .tlpl.do state disabled
+ dict for {pname pdict} $::platforms {
+ if {[dict get $pdict "fut"] ne [dict get $pdict "cur"]} {
+ .tlpl.do state !disabled
+ break
}
- } ; # toggle_pl_marked
-
- proc platforms_commit {} {
- set pl_add {}
- set pl_remove {}
- dict for {p pd} $::platforms {
- if {[dict get $pd "cur"] ne [dict get $pd "fut"]} {
- if {[dict get $pd "fut"]} {
- lappend pl_add $p
- } else {
- lappend pl_remove $p
- }
+ }
+} ; # toggle_pl_marked
+
+proc platforms_commit {} {
+ set pl_add {}
+ set pl_remove {}
+ dict for {pname pdict} $::platforms {
+ if {[dict get $pdict "cur"] ne [dict get $pdict "fut"]} {
+ if {[dict get $pdict "fut"]} {
+ lappend pl_add $pname
+ } else {
+ lappend pl_remove $pname
}
}
- if {[llength $pl_add] == 0 && [llength $pl_remove] == 0} return
- set cmds {}
- if {[llength $pl_add] > 0} {
- set cmd "platform add "
- append cmd [join $pl_add " "]
- lappend cmds $cmd
- }
- if {[llength $pl_remove] > 0} {
- set cmd "platform remove "
- append cmd [join $pl_remove " "]
- lappend cmds $cmd
- }
- run_cmds $cmds 1
- vwait ::done_waiting
- update_local_revnumbers
- collect_and_display_filtered
+ }
+ if {[llength $pl_add] == 0 && [llength $pl_remove] == 0} return
+ set cmds {}
+ if {[llength $pl_add] > 0} {
+ set cmd "platform add "
+ append cmd [join $pl_add " "]
+ lappend cmds $cmd
+ }
+ if {[llength $pl_remove] > 0} {
+ set cmd "platform remove "
+ append cmd [join $pl_remove " "]
+ lappend cmds $cmd
+ }
+ run_cmds $cmds 1
+ vwait ::done_waiting
+ update_local_revnumbers
+ collect_and_display_filtered
- } ; # platforms_do
+} ; # platforms_commit
# the platforms dialog
- proc platforms_select {} {
- create_dlg .tlpl
- wm title .tlpl [__ "Platforms"]
- if $::plain_unix {wm attributes .tlpl -type dialog}
-
- # wallpaper frame
- pack [ttk::frame .tlpl.bg] -expand 1 -fill both
-
- # buttons
- pack [ttk::frame .tlpl.but] -in .tlpl.bg -side bottom -fill x
- ttk::button .tlpl.do -text [__ "Apply and close"] -command {
- disable_dlg .tlpl
- platforms_commit
- end_dlg "" .tlpl
- }
- ttk::button .tlpl.dont -text [__ "Close"] -command \
- {end_dlg "" .tlpl}
- ppack .tlpl.do -in .tlpl.but -side right
- #.tlpl.do state disabled
- ppack .tlpl.dont -in .tlpl.but -side right
- bind .tlpl <Escape> {.tlpl.dont invoke}
-
- # platforms treeview; do we need a scrollbar?
- pack [ttk::frame .tlpl.fpl] -in .tlpl.bg -fill both -expand 1
- ttk::treeview .tlpl.pl -columns {sup plat} -show headings \
- -height [dict size $::platforms] -yscrollcommand {.tlpl.plsb set}
- ppack .tlpl.pl -in .tlpl.fpl -side left -fill both -expand 1
- ttk::scrollbar .tlpl.plsb -orient vertical \
- -command {.tlpl.pl yview}
- ppack .tlpl.plsb -in .tlpl.fpl -side right -fill y -expand 1
- #.tlpl.pl heading sup -text ""
- .tlpl.pl column sup -width [expr {$::cw * 8}]
- .tlpl.pl heading plat -text [__ "platform"] -anchor w
- .tlpl.pl column plat -width [expr {$::cw * 20}]
- dict for {p mks} $::platforms {
- .tlpl.pl insert {} end -id $p -values \
- [list [mark_sym [dict get $mks "cur"]] $p]
- }
-
- # "#2" refers to the second column, with editable mark symbols
- bind .tlpl.pl <space> {toggle_pl_marked [.tlpl.pl focus] "#1"}
- bind .tlpl.pl <Return> {toggle_pl_marked [.tlpl.pl focus] "#1"}
- # only toggle when column is "sup" i.e. #1
- bind .tlpl.pl <ButtonRelease-1> \
- {toggle_pl_marked \
- [.tlpl.pl identify item %x %y] \
- [.tlpl.pl identify column %x %y]}
-
- wm resizable .tlpl 0 1
- place_dlg .tlpl .
- } ; # platforms_select
-
-} ; # $::tcl_platform(platform) ne "windows"
+proc platforms_select {} {
+ if {$::tcl_platform(platform) eq "windows"} return
+
+ create_dlg .tlpl
+ wm title .tlpl [__ "Platforms"]
+ if $::plain_unix {wm attributes .tlpl -type dialog}
+
+ # wallpaper frame
+ pack [ttk::frame .tlpl.bg] -expand 1 -fill both
+
+ # buttons
+ pack [ttk::frame .tlpl.but] -in .tlpl.bg -side bottom -fill x
+ ttk::button .tlpl.do -text [__ "Apply and close"] -command {
+ disable_dlg .tlpl
+ platforms_commit
+ end_dlg "" .tlpl
+ }
+ ttk::button .tlpl.dont -text [__ "Close"] -command \
+ {end_dlg "" .tlpl}
+ ppack .tlpl.do -in .tlpl.but -side right
+ ppack .tlpl.dont -in .tlpl.but -side right
+ bind .tlpl <Escape> {.tlpl.dont invoke}
+
+ # platforms treeview; do we need a scrollbar?
+ pack [ttk::frame .tlpl.fpl] -in .tlpl.bg -fill both -expand 1
+ ttk::treeview .tlpl.pl -columns {stat plat} -show headings \
+ -height [dict size $::platforms] -yscrollcommand {.tlpl.plsb set}
+ ppack .tlpl.pl -in .tlpl.fpl -side left -fill both -expand 1
+ ttk::scrollbar .tlpl.plsb -orient vertical \
+ -command {.tlpl.pl yview}
+ ppack .tlpl.plsb -in .tlpl.fpl -side right -fill y -expand 1
+ .tlpl.pl column stat -width [expr {$::cw * 8}]
+ .tlpl.pl heading plat -text [__ "platform"] -anchor w
+ .tlpl.pl column plat -width [expr {$::cw * 20}]
+ dict for {pname pdict} $::platforms {
+ dict set ::platforms $pname "fut" [dict get $pdict "cur"]
+ }
+ foreach pname [lsort [dict keys $::platforms]] {
+ .tlpl.pl insert {} end -id $pname -values \
+ [list [mark_sym [dict get $::platforms $pname "cur"]] $pname]
+ }
+
+ bind .tlpl.pl <space> {toggle_pl_marked [.tlpl.pl focus] "#1"}
+ bind .tlpl.pl <Return> {toggle_pl_marked [.tlpl.pl focus] "#1"}
+ # only toggle when column is #1
+ bind .tlpl.pl <ButtonRelease-1> \
+ {toggle_pl_marked \
+ [.tlpl.pl identify item %x %y] \
+ [.tlpl.pl identify column %x %y]}
+
+ # enable commit button only if changes are requested
+ .tlpl.do state disabled
+ wm resizable .tlpl 0 1
+ place_dlg .tlpl .
+} ; # platforms_select
+
##### restore from backup #####
@@ -1772,7 +1806,7 @@ proc install_pkgs {sel_opt {pk ""}} {
show_err_log
}
update_local_revnumbers
- if {$sel_opt eq "marked"} {mark_all 0}
+ if {$sel_opt eq "marked"} unmark_all
collect_and_display_filtered
} ; # install_pkgs
@@ -1845,7 +1879,7 @@ proc update_pkgs {sel_opt {pk ""}} {
show_err_log
}
update_local_revnumbers
- if {$sel_opt eq "marked"} {mark_all 0}
+ if {$sel_opt eq "marked"} unmark_all
collect_and_display_filtered
} ; # update_pkgs
@@ -1906,7 +1940,7 @@ proc remove_pkgs {sel_opt {pk ""}} {
show_err_log
}
update_local_revnumbers
- if {$sel_opt eq "marked"} {mark_all 0}
+ if {$sel_opt eq "marked"} unmark_all
collect_and_display_filtered
} ; # remove_pkgs
@@ -1934,6 +1968,8 @@ proc toggle_marked_pkg {itm cl} {
# 'marked' should get updated in ::pkgs, ::filtered and in .pkglist.
if {$cl ne "#1"} return
+ # clicking in the header:
+ if {$itm eq ""} return
# $mrk: negation of current value of marked for $itm
set mrk [expr {[dict get $::pkgs $itm "marked"] ? 0 : 1}]
dict set ::pkgs $itm "marked" $mrk
@@ -1942,19 +1978,27 @@ proc toggle_marked_pkg {itm cl} {
.pkglist set $itm mk $m
} ; # toggle_marked_pkg
-proc mark_all {mrk} {
+proc unmark_all {} {
foreach nm [dict keys $::pkgs] {
- dict set ::pkgs $nm "marked" $mrk
+ dict set ::pkgs $nm "marked" 0
}
- set m [mark_sym $mrk]
+ set m [mark_sym 0]
foreach nm [dict keys $::filtered] {
dict set ::filtered $nm [lreplace [dict get $::filtered $nm] 0 0 $m]
}
foreach nm [.pkglist children {}] {
.pkglist set $nm mk $m
}
- # alternatively: regenerate ::filtered and .pkglist from ::pkgs
-} ; # mark_all
+} ; # unmark_all
+
+proc mark_displayed {} {
+ set m [mark_sym 1]
+ foreach nm [.pkglist children {}] {
+ dict set ::pkgs $nm "marked" 1
+ dict set ::filtered $nm [lreplace [dict get $::filtered $nm] 0 0 $m]
+ .pkglist set $nm mk $m
+ }
+} ; # mark_displayed
##### package popup #####
@@ -2110,7 +2154,7 @@ proc populate_main {} {
menu .mn_empty
.mn_empty add cascade -label [__ "File"] -menu .mn_empty.file -underline 0
if $::plain_unix {
- .mn_empty configure -borderwidth 1
+ .mn_empty configure -borderwidth 0
.mn_empty configure -background $::default_bg
menu .mn_empty.file
}
@@ -2118,7 +2162,7 @@ proc populate_main {} {
menu .mn
. configure -menu .mn
if $::plain_unix {
- .mn configure -borderwidth 1
+ .mn configure -borderwidth 0
.mn configure -background $::default_bg
# plain_unix: avoid a possible RenderBadPicture error on quitting
@@ -2130,7 +2174,7 @@ proc populate_main {} {
}
}
- # inx: keeping count to record indices where needed,
+ # inx: keeping count to record submenu indices where needed,
# i.e. when an entry needs to be referenced.
# not all submenus need this.
@@ -2230,11 +2274,11 @@ proc populate_main {} {
# with the default ttk::frame color, which seems to work
# everywhere.
pack [ttk::frame .bg] -expand 1 -fill both
- .bg configure -padding 5
+ .bg configure -padding 5pt
# bottom of main window
pack [ttk::frame .endbuttons] -in .bg -side bottom -fill x
- ttk::label .busy -textvariable ::busy -font TkHeadingFont -anchor w
+ ttk::label .busy -textvariable ::busy -font hfont -anchor w
ppack .busy -in .endbuttons -side left
ppack [ttk::button .q -text [__ Quit] -command {destroy .}] \
-in .endbuttons -side right
@@ -2256,27 +2300,27 @@ proc populate_main {} {
[string range $::env(PATH) 0 59]]
}
- # left frame
+ # left info frame
pack [ttk::frame .topfl] -in .topf -side left -anchor nw
# subframe for repositories, to be filled by show_repos
pack [ttk::frame .toprepo] -in .topfl -side top -anchor w
- # various info, left frame
- pack [ttk::frame .topfll] -in .topfl -side top -anchor nw -pady [list 6 0]
+ # various info (left frame)
+ pack [ttk::frame .topfll] -in .topfl -side top -anchor nw -pady {6pt 0pt}
ttk::label .topfll.lluptodate -text [__ "TL Manager up to date?"] -anchor w
pgrid .topfll.lluptodate -row 2 -column 0 -sticky w
ttk::label .topfll.luptodate -text [__ "Unknown"] -anchor w
pgrid .topfll.luptodate -row 2 -column 1 -sticky w
- ttk::label .topfll.llcmd -text [__ "Last tlmgr command:"] -anchor w \
+ ttk::label .topfll.llcmd -text [__ "Last tlmgr command:"] -anchor w
pgrid .topfll.llcmd -row 3 -column 0 -sticky w
ttk::label .topfll.lcmd -textvariable ::last_cmd \
-wraplength [expr {60*$::cw}] -justify left -anchor w
pgrid .topfll.lcmd -row 3 -column 1 -sticky w
- # various info, right frame
+ # right info frame
ppack [ttk::frame .topfr] -in .topf -side right -anchor ne
if {$::tcl_platform(platform) eq "windows"} {
pack [ttk::label .topfr.ladmin] -side top -anchor e
@@ -2287,21 +2331,39 @@ proc populate_main {} {
pack [ttk::label .topfr.lshell] -side top -anchor e
pack [ttk::separator .sp -orient horizontal] \
- -in .bg -side top -fill x -pady 6
+ -in .bg -side top -fill x -pady 3pt
+
+ # controls frame, between info frame and package list
+ pack [ttk::frame .middle] -in .bg -side top -fill x
+ pack [ttk::frame .pkcontrol] \
+ -in .middle -side left -anchor nw -fill x
+
+ # package list display options
+ ttk::label .lpack -text [string toupper [__ "Package list"]] \
+ -font hfont
+ pack .lpack -in .pkcontrol -side top -padx 3pt -pady {6pt 6pt} -anchor w
+
+ pack [ttk::frame .pkfilter -relief groove -borderwidth 2 -padding 3pt] \
+ -in .pkcontrol -side top -anchor nw
+ # on my current linux, groove works only with a dimensionless borderwidth
+
+ # separator columns
+ grid columnconfigure .pkfilter 1 -minsize 20pt
+ grid [ttk::separator .pkfilter.sep1 -orient vertical] \
+ -column 1 -row 0 -rowspan 5 -sticky ns
+ grid columnconfigure .pkfilter 3 -minsize 20pt
+ grid [ttk::separator .pkfilter.sep3 -orient vertical] \
+ -column 3 -row 0 -rowspan 5 -sticky ns
- # package list
- ttk::label .lpack -text [__ "Package list"] -font TkHeadingFont -anchor w
- pack .lpack -in .bg -side top -padx 3 -pady [list 15 3] -fill x
-
- # controlling package list
- ttk::frame .pkfilter
- pack .pkfilter -in .bg -side top -fill x
- grid columnconfigure .pkfilter 3 -weight 1
- # column #3 is empty, but that is allright
# filter on status: inst, all, upd
- ttk::label .pkfilter.lstat -font TkHeadingFont -text [__ "Status"]
+ ttk::label .pkfilter.lstat -font bfont -text [__ "Status"]
ttk::radiobutton .pkfilter.inst -text [__ "Installed"] -value inst \
-variable ::stat_opt -command collect_and_display_filtered
+ ttk::radiobutton .pkfilter.notins -text [__ "Not installed"] -value notins \
+ -variable ::stat_opt -command {
+ if {! $::have_remote} get_packages_info_remote
+ collect_and_display_filtered
+ }
ttk::radiobutton .pkfilter.alls -text [__ "All"] -value all \
-variable ::stat_opt -command {
if {! $::have_remote} get_packages_info_remote
@@ -2312,70 +2374,74 @@ proc populate_main {} {
if {! $::have_remote} get_packages_info_remote
collect_and_display_filtered
}
- grid .pkfilter.lstat -column 0 -row 0 -sticky w -padx {3 50}
- pgrid .pkfilter.inst -column 0 -row 1 -sticky w
- pgrid .pkfilter.alls -column 0 -row 2 -sticky w
- pgrid .pkfilter.upd -column 0 -row 3 -sticky w
+ grid .pkfilter.lstat -column 0 -row 0 -sticky w -padx {3pt 50pt}
+ pgrid .pkfilter.inst -column 0 -row 1 -sticky w
+ pgrid .pkfilter.notins -column 0 -row 2 -sticky w
+ pgrid .pkfilter.alls -column 0 -row 3 -sticky w
+ pgrid .pkfilter.upd -column 0 -row 4 -sticky w
# filter on detail level: all, coll, schm
- ttk::label .pkfilter.ldtl -font TkHeadingFont -text [__ "Detail >> Global"]
+ ttk::label .pkfilter.ldtl -font bfont -text [__ "Detail >> Global"]
ttk::radiobutton .pkfilter.alld -text [__ All] -value all \
-variable ::dtl_opt -command collect_and_display_filtered
ttk::radiobutton .pkfilter.coll -text [__ "Collections and schemes"] \
-value coll -variable ::dtl_opt -command collect_and_display_filtered
ttk::radiobutton .pkfilter.schm -text [__ "Only schemes"] -value schm \
-variable ::dtl_opt -command collect_and_display_filtered
- pgrid .pkfilter.ldtl -column 1 -row 0 -sticky w
- pgrid .pkfilter.alld -column 1 -row 1 -sticky w
- pgrid .pkfilter.coll -column 1 -row 2 -sticky w
- pgrid .pkfilter.schm -column 1 -row 3 -sticky w
-
- # marks
- grid [ttk::button .mrk_all -text [__ "Mark all"] -command {mark_all 1}] \
- -in .pkfilter -column 2 -row 1 -sticky w -padx {50 3} -pady 3
- grid [ttk::button .mrk_none -text [__ "Mark none"] -command {mark_all 0}] \
- -in .pkfilter -column 2 -row 2 -sticky w -padx {50 3} -pady 3
+ pgrid .pkfilter.ldtl -column 2 -row 0 -sticky w
+ pgrid .pkfilter.alld -column 2 -row 1 -sticky w
+ pgrid .pkfilter.coll -column 2 -row 2 -sticky w
+ pgrid .pkfilter.schm -column 2 -row 3 -sticky w
+
+ # search interface
+ ttk::label .pkfilter.search_l -font bfont -text [__ "Search"]
+ ttk::entry .pkfilter.search_e -width 30
+ ttk::radiobutton .pkfilter.search_n -variable ::search_desc \
+ -value 0 -text [__ "By name"]
+ ttk::radiobutton .pkfilter.search_d -variable ::search_desc \
+ -value 1 -text [__ "By name and description"]
+ pgrid .pkfilter.search_l -column 4 -row 0 -sticky w
+ pgrid .pkfilter.search_e -column 4 -row 1 -sticky w
+ pgrid .pkfilter.search_n -column 4 -row 2 -sticky w
+ pgrid .pkfilter.search_d -column 4 -row 3 -sticky w
+
+ bind .pkfilter.search_e <KeyRelease> display_packages_info
+ bind .pkfilter.search_n <ButtonRelease> \
+ {set ::search_desc 0; display_packages_info}
+ bind .pkfilter.search_d <ButtonRelease> \
+ {set ::search_desc 1; display_packages_info}
# actions
- set rw -1
- incr rw
+ pack [ttk::frame .pkact] -in .middle -side right -anchor ne
ttk::button .mrk_inst -text [__ "Install marked"] -command {
install_pkgs "marked"}
- pgrid .mrk_inst -in .pkfilter -column 4 -row $rw -sticky ew
- incr rw
+ ppack .mrk_inst -in .pkact -side top -fill x
ttk::button .mrk_upd -text [__ "Update marked"] -command {
update_pkgs "marked"}
- pgrid .mrk_upd -in .pkfilter -column 4 -row $rw -sticky ew
- incr rw
+ ppack .mrk_upd -in .pkact -side top -fill x
ttk::button .mrk_rem -text [__ "Remove marked"] -command {
remove_pkgs "marked"}
- pgrid .mrk_rem -in .pkfilter -column 4 -row $rw -sticky ew
+ ppack .mrk_rem -in .pkact -side top -fill x
if $::do_restore {
- incr rw
ttk::button .mrk_rest -text "[__ "Restore from backup"] ..." -command \
restore_backups_dialog
- pgrid .mrk_rest -in .pkfilter -column 4 -row $rw -sticky ew
+ ppack .mrk_rest -in .pkact -side top -fill x
}
- incr rw
ttk::button .upd_tlmgr -text [__ "Update tlmgr"] -command update_tlmgr
- pgrid .upd_tlmgr -in .pkfilter -column 4 -row $rw -sticky ew
- incr rw
+ ppack .upd_tlmgr -in .pkact -side top -fill x
ttk::button .upd_all -text [__ "Update all"] -command update_all
- pgrid .upd_all -in .pkfilter -column 4 -row $rw -sticky ew
-
- # search interface; no new row
- grid [ttk::frame .pksearch] -in .pkfilter -row $rw \
- -column 0 -columnspan 4 -sticky w
- ppack [ttk::label .pksearch.l \
- -text [__ "Search"]] -side left
- pack [ttk::entry .pksearch.e -width 30] -side left -padx {3 0} -pady 3
- ppack [ttk::radiobutton .pksearch.n -variable ::search_desc \
- -value 0 -text [__ "By name"]] -side left
- ppack [ttk::radiobutton .pksearch.d -variable ::search_desc \
- -value 1 -text [__ "By name and description"]] -side left
- bind .pksearch.e <KeyRelease> display_packages_info
- bind .pksearch.n <ButtonRelease> {set ::search_desc 0; display_packages_info}
- bind .pksearch.d <ButtonRelease> {set ::search_desc 1; display_packages_info}
+ ppack .upd_all -in .pkact -side top -fill x
+
+ # marking all/none
+ pack [ttk::frame .pksel] \
+ -in .bg -pady 6pt -side top -fill x
+ pack [ttk::button .mrk_all -text [__ "Mark all displayed"] \
+ -command mark_displayed] -in .pksel -side left
+ pack [ttk::button .mrk_none -text [__ "Mark none"] -command unmark_all] \
+ -in .pksel -padx 6pt -side left
+ ttk::label .binwarn \
+ -text [__ "Only packages for installed platforms are displayed"]
+ pack .binwarn -in .pksel -padx 3pt -side right -anchor s
# packages list itself
pack [ttk::frame .fpkg] -in .bg -side top -fill both -expand 1
@@ -2423,7 +2489,7 @@ proc display_all_data {} {
.topfr.ladmin configure -text \
[expr {$::multiuser ? [__ "Multi-user"] : [__ "Single-user"]}]
}
- # svns for tlmgr and tlshell
+ # revision numbers for tlmgr and tlshell
.topfr.linfra configure -text \
"tlmgr: r[dict get $::pkgs texlive.infra localrev]"
.topfr.lshell configure -text \
@@ -2433,7 +2499,7 @@ proc display_all_data {} {
display_updated_globals
}
-# to be invoked at initialization and after a font scaling change
+# to be invoked at initialization and after a font scaling- or language change
proc rebuild_interface {} {
foreach c [winfo children .] {catch {destroy $c}}
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/NEWS b/Master/texmf-dist/doc/luatex/luaotfload/NEWS
index b0a7f124c10..5b17fe46c1a 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/NEWS
+++ b/Master/texmf-dist/doc/luatex/luaotfload/NEWS
@@ -1,5 +1,10 @@
Change History
--------------
+2021-01-08 luaotfload v3.17
+
+ * The fontloader has been synced with the context code from 2021-01-07.
+ This improves support for advanced CFF based OpenType variable fonts.
+
2020-12-31 luaotfload v3.16
* The fontloader has been synced with the context code from 2020-12-30
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/README.md b/Master/texmf-dist/doc/luatex/luaotfload/README.md
index f19c4c5563e..6704e66b90b 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/README.md
+++ b/Master/texmf-dist/doc/luatex/luaotfload/README.md
@@ -1,8 +1,8 @@
# The Luaotfload Package
-VERSION: 3.16
+VERSION: 3.17
-DATE: 2020-12-31
+DATE: 2021-01-08
## Description
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/filegraph.pdf b/Master/texmf-dist/doc/luatex/luaotfload/filegraph.pdf
index ac40ce55f99..c019d96ba8e 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/filegraph.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/filegraph.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf
index 52137882d4c..afb5a2a4f5a 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-conf.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf
index 299ff211aa1..84c541dc0cf 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-latex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex
index d1f698f6842..acc136fd9db 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-main.tex
@@ -1,4 +1,4 @@
-%% Copyright (C) 2009-2020
+%% Copyright (C) 2009-2021
%%
%% by Elie Roux <elie.roux@telecom-bretagne.eu>
%% and Khaled Hosny <khaledhosny@eglug.org>
@@ -32,7 +32,7 @@
\beginfrontmatter
\setdocumenttitle {The \identifier{luaotfload} package}
- \setdocumentdate {2020-12-31 v3.16}
+ \setdocumentdate {2021-01-08 v3.17}
\setdocumentauthor {LaTeX3 Project\\
Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\
Home: \hyperlink {https://github.com/latex3/luaotfload}}
@@ -62,6 +62,14 @@ Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a c
\endsection
\beginsection{Changes}
+\beginsubsection {New in version 3.17 (by Ulrike Fischer/Marcel Krüger)}
+\begin{itemize}
+ \item The experimental support for OpenType variable fonts has been extended
+ to more reliably support modern fonts.
+ \item A number of small bugfixes.
+ \end{itemize}
+\endsubsection
+
\beginsubsection {New in version 3.16 (by Ulrike Fischer/Marcel Krüger)}
\begin{itemize}
\item The entry point is called \identifier{luaotfload.lua} instead of
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf
index e35752ab175..3836a25b15f 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst
index c4c15d916f9..9ebc3127a12 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload-tool.rst
@@ -6,9 +6,9 @@
generate and query the Luaotfload font names database
-----------------------------------------------------------------------
-:Date: 2020-12-31
+:Date: 2021-01-08
:Copyright: GPL v2.0
-:Version: 3.16
+:Version: 3.17
:Manual section: 1
:Manual group: text processing
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst
index 5905eb3811a..645a659d2bb 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst
+++ b/Master/texmf-dist/doc/luatex/luaotfload/luaotfload.conf.rst
@@ -6,9 +6,9 @@
Luaotfload configuration file
-----------------------------------------------------------------------
-:Date: 2020-12-31
+:Date: 2021-01-08
:Copyright: GPL v2.0
-:Version: 3.16
+:Version: 3.17
:Manual section: 5
:Manual group: text processing
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf b/Master/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf
index 5c00e2f4a63..29d47c26951 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/scripts-demo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf b/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf
index fa1bda41bbe..bfb42584743 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo-graphite.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf b/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf
index b19632bbc70..056db0fac37 100644
--- a/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf
+++ b/Master/texmf-dist/doc/luatex/luaotfload/shaper-demo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/luaotfload-tool.1 b/Master/texmf-dist/doc/man/man1/luaotfload-tool.1
index 7cd4934ab05..86f70ac706d 100644
--- a/Master/texmf-dist/doc/man/man1/luaotfload-tool.1
+++ b/Master/texmf-dist/doc/man/man1/luaotfload-tool.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD-TOOL 1 "2020-12-31" "3.16" "text processing"
+.TH LUAOTFLOAD-TOOL 1 "2021-01-08" "3.17" "text processing"
.SH NAME
luaotfload-tool \- generate and query the Luaotfload font names database
.
diff --git a/Master/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf b/Master/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
index 79a46edf9b2..9aad891b4bf 100644
--- a/Master/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/luaotfload-tool.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man5/luaotfload.conf.5 b/Master/texmf-dist/doc/man/man5/luaotfload.conf.5
index 4620ef0f2ff..efb8b5fff32 100644
--- a/Master/texmf-dist/doc/man/man5/luaotfload.conf.5
+++ b/Master/texmf-dist/doc/man/man5/luaotfload.conf.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD.CONF 5 "2020-12-31" "3.16" "text processing"
+.TH LUAOTFLOAD.CONF 5 "2021-01-08" "3.17" "text processing"
.SH NAME
luaotfload.conf \- Luaotfload configuration file
.
diff --git a/Master/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf b/Master/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
index db7ae5d6ba8..386f1a93f60 100644
--- a/Master/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
+++ b/Master/texmf-dist/doc/man/man5/luaotfload.conf.man5.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/luaotfload/luaotfload-tool.lua b/Master/texmf-dist/scripts/luaotfload/luaotfload-tool.lua
index fd66a9f79c8..0c583639033 100755
--- a/Master/texmf-dist/scripts/luaotfload/luaotfload-tool.lua
+++ b/Master/texmf-dist/scripts/luaotfload/luaotfload-tool.lua
@@ -9,8 +9,8 @@
local ProvidesLuaModule = {
name = "luaotfload-tool",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload-tool / database functionality",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-2020-12-30.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua
index 835eca6695c..e333584b006 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-2020-12-30.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua
@@ -1,9 +1,9 @@
--[[info-----------------------------------------------------------------------
Luaotfload fontloader package
- build 2020-12-30 17:29:34
+ build 2021-01-07 23:19:37
-------------------------------------------------------------------------------
- © 2020 PRAGMA ADE / ConTeXt Development Team
+ © 2021 PRAGMA ADE / ConTeXt Development Team
The code in this file is provided under the GPL v2.0 license. See the
file COPYING in the Luaotfload repository for details.
@@ -63,7 +63,7 @@
--info]]-----------------------------------------------------------------------
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
if not modules then modules={} end modules ['data-con']={
version=1.100,
@@ -184,10 +184,10 @@ function containers.cleanname(name)
return (gsub(lower(name),"[^%w\128-\255]+","-"))
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “data-con”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “data-con”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “basics-nod” 4b5c3c63e19df1b3f37fae7f87c25bda] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “basics-nod” 4b5c3c63e19df1b3f37fae7f87c25bda] ---
if not modules then modules={} end modules ['luatex-fonts-nod']={
version=1.001,
@@ -450,10 +450,10 @@ do
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “basics-nod”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “basics-nod”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “basics-chr” 64fafe4eaf55d64aead6513c1e74a024] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “basics-chr” 64fafe4eaf55d64aead6513c1e74a024] ---
characters=characters or {}
@@ -4063,10 +4063,10 @@ characters.indicgroups={
},
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “basics-chr”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “basics-chr”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
if not modules then modules={} end modules ['font-ini']={
version=1.001,
@@ -4107,10 +4107,10 @@ if node and not tex.getfontoffamily then
tex.getfontoffamily=node.family_font
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ini”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ini”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
if not modules then modules={} end modules ['luatex-font-mis']={
version=1.001,
@@ -4142,10 +4142,10 @@ function font.each()
return table.sortedhash(fonts.hashes.identifiers)
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-mis”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-mis”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-con” a3eb543fa5946fa1faf0e1e50d5b3b91] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-con” 724e5dd14aec2d4d189f8619898004cf] ---
if not modules then modules={} end modules ['font-con']={
version=1.001,
@@ -4599,6 +4599,9 @@ function constructors.scale(tfmdata,specification)
properties.hasmath=true
target.nomath=false
target.MathConstants=target.mathparameters
+ local oldmath=properties.oldmath
+ targetproperties.oldmath=oldmath
+ target.oldmath=oldmath
else
properties.hasmath=false
target.nomath=true
@@ -5510,10 +5513,10 @@ function constructors.addcoreunicodes(unicodes)
return unicodes
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-con”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-con”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-enc” 5ff4ca50493d7c4ecea0e15c203099f0] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-enc” 5ff4ca50493d7c4ecea0e15c203099f0] ---
if not modules then modules={} end modules ['luatex-font-enc']={
version=1.001,
@@ -5582,10 +5585,10 @@ function encodings.load(filename)
return containers.write(encodings.cache,name,data)
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-enc”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-enc”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
if not modules then modules={} end modules ['font-cid']={
version=1.001,
@@ -5736,10 +5739,10 @@ function cid.getmap(specification)
return found
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-cid”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-cid”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-map” c4a39db5ad822b348aa61bca5f4a599a] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-map” c4a39db5ad822b348aa61bca5f4a599a] ---
if not modules then modules={} end modules ['font-map']={
version=1.001,
@@ -6147,10 +6150,10 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-map”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-map”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
if not modules then modules={} end modules ['font-vfc']={
version=1.001,
@@ -6247,10 +6250,10 @@ helpers.commands=utilities.storage.allocate {
dummy=dummy,
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-vfc”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-vfc”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otr” 64dcbbc7107538723990e1119a80a9f8] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otr” 64dcbbc7107538723990e1119a80a9f8] ---
if not modules then modules={} end modules ['font-otr']={
version=1.001,
@@ -8094,10 +8097,10 @@ function readers.extend(fontdata)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otr”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otr”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
if not modules then modules={} end modules ['font-oti']={
version=1.001,
@@ -8240,10 +8243,10 @@ function otffeatures.checkeddefaultlanguage(featuretype,autolanguage,languages)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oti”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oti”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ott” 673ed11e1d159997f535bfec5fa73808] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ott” 673ed11e1d159997f535bfec5fa73808] ---
if not modules then modules={} end modules ["font-ott"]={
version=1.001,
@@ -9359,10 +9362,10 @@ function otffeatures.normalize(features,wrap)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ott”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ott”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-cff” 802a10ad12ac32329f540881f940e3f2] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-cff” 2b677fad52d9999d0685e8525271a8cc] ---
if not modules then modules={} end modules ['font-cff']={
version=1.001,
@@ -10540,7 +10543,7 @@ do
local reginit=false
local function updateregions(n)
if regions then
- local current=regions[n] or regions[1]
+ local current=regions[n+1] or regions[1]
nofregions=#current
if axis and n~=reginit then
factors={}
@@ -11109,7 +11112,11 @@ do
popped=3
seacs={}
if regions then
- regions={ regions }
+ regions={}
+ local deltas=data.deltas
+ for i=1,#deltas do
+ regions[i]=deltas[i].regions
+ end
axis=data.factors or false
end
end
@@ -11557,10 +11564,10 @@ function readers.cffcheck(filename)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-cff”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-cff”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ttf” ffffc827e1bcddc33a2b615340ecff7f] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ttf” ffffc827e1bcddc33a2b615340ecff7f] ---
if not modules then modules={} end modules ['font-ttf']={
version=1.001,
@@ -12731,10 +12738,10 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ttf”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ttf”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-dsp” 18c85a4857f45c31a3555bf1faac434a] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-dsp” 174ce11f3ba0bddf270f48d8d2addd56] ---
if not modules then modules={} end modules ['font-dsp']={
version=1.001,
@@ -13096,7 +13103,6 @@ local function readvariationdata(f,storeoffset,factors)
end
regions[i]=t
end
- if factors then
for i=1,nofdeltadata do
setposition(f,storeoffset+deltadata[i])
local nofdeltasets=readushort(f)
@@ -13120,7 +13126,6 @@ local function readvariationdata(f,storeoffset,factors)
scales=factors and getscales(usedregions,factors) or nil,
}
end
- end
setposition(f,position)
return regions,deltadata
end
@@ -16012,10 +16017,10 @@ function readers.mvar(f,fontdata,specification)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-dsp”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-dsp”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oup” 6f46aa00ae1c20c43f8ffaf329dc8695] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oup” 6f46aa00ae1c20c43f8ffaf329dc8695] ---
if not modules then modules={} end modules ['font-oup']={
version=1.001,
@@ -18656,10 +18661,10 @@ function readers.expand(data)
expandlookups(sublookups)
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oup”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oup”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otl” 6c4b718ceacfb0cbeb2c03c423f97aec] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otl” f4e6652a191003493389de230b14cfb3] ---
if not modules then modules={} end modules ['font-otl']={
version=1.001,
@@ -18687,7 +18692,7 @@ local trace_defining=false registertracker("fonts.defining",function(v) trace_d
local report_otf=logs.reporter("fonts","otf loading")
local fonts=fonts
local otf=fonts.handlers.otf
-otf.version=3.112
+otf.version=3.113
otf.cache=containers.define("fonts","otl",otf.version,true)
otf.svgcache=containers.define("fonts","svg",otf.version,true)
otf.pngcache=containers.define("fonts","png",otf.version,true)
@@ -19365,10 +19370,10 @@ otf.coverup={
end
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otl”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otl”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oto” 2b1d6bc63b2ebf8f2655a15e1cda6541] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oto” 2b1d6bc63b2ebf8f2655a15e1cda6541] ---
if not modules then modules={} end modules ['font-oto']={
version=1.001,
@@ -19826,10 +19831,10 @@ registerotffeature {
}
otf.basemodeinitializer=featuresinitializer
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-oto”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-oto”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otj” 8de59cb9b043e5f73c6b9f7cc8f6978e] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otj” 8de59cb9b043e5f73c6b9f7cc8f6978e] ---
if not modules then modules={} end modules ['font-otj']={
version=1.001,
@@ -21324,10 +21329,10 @@ function injections.handler(head,where)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otj”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otj”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ota” ad1d5de06400f88829509e1f3ff2b473] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ota” ad1d5de06400f88829509e1f3ff2b473] ---
if not modules then modules={} end modules ['font-ota']={
version=1.001,
@@ -21821,10 +21826,10 @@ directives.register("otf.analyze.useunicodemarks",function(v)
analyzers.useunicodemarks=v
end)
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ota”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ota”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ots” 91c79619c386e4a96954f3115f398b94] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ots” c780a471147527f4ddc139e017927ffe] ---
if not modules then modules={} end modules ['font-ots']={
version=1.001,
@@ -25442,10 +25447,10 @@ registerotffeature {
},
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ots”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ots”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-osd” 73c9531c79df5ada320cb20777f7ed49] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-osd” 73c9531c79df5ada320cb20777f7ed49] ---
if not modules then modules={} end modules ['font-osd']={
version=1.001,
@@ -27878,10 +27883,10 @@ for i=1,nofscripts do
methods[scripts_two[i]]=method_two
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-osd”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-osd”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ocl” 797b5c71bf819c5f4fb314a4d646e9a7] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ocl” 797b5c71bf819c5f4fb314a4d646e9a7] ---
if not modules then modules={} end modules ['font-ocl']={
version=1.001,
@@ -28424,10 +28429,10 @@ if context then
}
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-ocl”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-ocl”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otc” 0f12230ea07b5151f75d52726977e91f] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otc” 0f12230ea07b5151f75d52726977e91f] ---
if not modules then modules={} end modules ['font-otc']={
version=1.001,
@@ -29184,10 +29189,10 @@ end
otf.enhancers.enhance=enhance
otf.enhancers.register("check extra features",enhance)
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-otc”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-otc”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
if not modules then modules={} end modules ['font-onr']={
version=1.001,
@@ -29560,10 +29565,10 @@ function readers.getinfo(filename)
end
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-onr”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-onr”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-one” 53cd565030e919da984b50471cc3be37] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-one” 53cd565030e919da984b50471cc3be37] ---
if not modules then modules={} end modules ['font-one']={
version=1.001,
@@ -30277,10 +30282,10 @@ registerafmenhancer("normalize features",enhance_normalize_features)
registerafmenhancer("check extra features",otfenhancers.enhance)
registerafmenhancer("fix names",enhance_fix_names)
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-one”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-one”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
if not modules then modules={} end modules ['font-afk']={
version=1.001,
@@ -30447,10 +30452,10 @@ fonts.handlers.afm.helpdata={
}
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-afk”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-afk”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
if not modules then modules={} end modules ['luatex-fonts-tfm']={
version=1.001,
@@ -30965,10 +30970,10 @@ registertfmfeature {
}
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-tfm”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-tfm”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
if not modules then modules={} end modules ['font-lua']={
version=1.001,
@@ -31008,10 +31013,10 @@ function readers.lua(specification)
return check_lua(specification,fullname)
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-lua”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-lua”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
if not modules then modules={} end modules ['font-def']={
version=1.001,
@@ -31411,10 +31416,10 @@ if not context then
callbacks.register('define_font',definers.read,"definition of fonts (tfmdata preparation)")
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-def”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-def”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-shp” 5ff497c993112d4fef4c148348d964eb] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-shp” 5ff497c993112d4fef4c148348d964eb] ---
if not modules then modules={} end modules ['font-shp']={
version=1.001,
@@ -31779,10 +31784,10 @@ callback.register("glyph_stream_provider",function(id,index,mode)
return ""
end)
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-shp”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-shp”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
if not modules then modules={} end modules ['luatex-fonts-def']={
version=1.001,
@@ -31863,10 +31868,10 @@ function fonts.definers.applypostprocessors(tfmdata)
return tfmdata
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-def”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-def”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
if not modules then modules={} end modules ['luatex-fonts-ext']={
version=1.001,
@@ -32052,10 +32057,10 @@ registerotffeature {
}
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-ext”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-ext”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
if not modules then modules={} end modules ['font-imp-tex']={
version=1.001,
@@ -32154,10 +32159,10 @@ registerotffeature {
description="arabic digits",
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-tex”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-tex”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-ligatures” 26ffcf089391445f7af59536c8814364] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-ligatures” 26ffcf089391445f7af59536c8814364] ---
if not modules then modules={} end modules ['font-imp-ligatures']={
version=1.001,
@@ -32271,10 +32276,10 @@ if context then
}
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-ligatures”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-ligatures”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-italics” ae563638fa29a4ff3e8e4d1e81fd35ae] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-italics” defcb415bc1e0a0999b27773902adc18] ---
if not modules then modules={} end modules ['font-imp-italics']={
version=1.001,
@@ -32378,10 +32383,10 @@ if context then
registerafmfeature(dimensions_specification)
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-italics”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-italics”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-effects” a2dde5e071fcb3fc7b90f2bcd5aa4f22] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-effects” a2dde5e071fcb3fc7b90f2bcd5aa4f22] ---
if not modules then modules={} end modules ['font-imp-effects']={
version=1.001,
@@ -32764,10 +32769,10 @@ local specification={
registerotffeature(specification)
registerafmfeature(specification)
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “font-imp-effects”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “font-imp-effects”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
fonts.handlers.otf.addfeature {
@@ -34836,10 +34841,10 @@ fonts.handlers.otf.addfeature {
["type"]="ligature",
}
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-lig”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-lig”] ---
-do --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-gbn” 10ecdf01e7c926e5128ad8a9dff4d677] ---
+do --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-gbn” 10ecdf01e7c926e5128ad8a9dff4d677] ---
if not modules then modules={} end modules ['luatex-fonts-gbn']={
version=1.001,
@@ -35104,7 +35109,7 @@ function nodes.simple_font_handler(head,groupcode,size,packtype,direction)
return head
end
-end --- [luaotfload, fontloader-2020-12-30.lua scope for “fonts-gbn”] ---
+end --- [luaotfload, fontloader-2021-01-07.lua scope for “fonts-gbn”] ---
--- vim:ft=lua:sw=2:ts=8:et:tw=79
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-cff.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-cff.lua
index b7d45392d60..4e2981011ac 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-cff.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-cff.lua
@@ -1425,13 +1425,15 @@ do
-- to wrap my head around the rather complex variable font specification
-- with regions and axis, the following approach kind of works but is more
-- some trial and error trick. It's still not clear how much of the complex
- -- truetype description applies to cff.
+ -- truetype description applies to cff. Once there are fonts out there we'll
+ -- get there. (Marcel and friends did some tests with recent cff2 fonts so
+ -- the code has been adapted accordingly.)
local reginit = false
local function updateregions(n) -- n + 1
if regions then
- local current = regions[n] or regions[1]
+ local current = regions[n+1] or regions[1]
nofregions = #current
if axis and n ~= reginit then
factors = { }
@@ -2155,7 +2157,14 @@ do
popped = 3
seacs = { }
if regions then
- regions = { regions } -- needs checking
+ -- this was:
+ -- regions = { regions } -- needs checking
+ -- and is now (MFC):
+ regions = { }
+ local deltas = data.deltas
+ for i = 1, #deltas do
+ regions[i] = deltas[i].regions
+ end
axis = data.factors or false
end
end
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-con.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-con.lua
index 7162338c66e..f650e5b03d6 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-con.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-con.lua
@@ -600,13 +600,17 @@ function constructors.scale(tfmdata,specification)
--
if hasmath then
constructors.assignmathparameters(target,tfmdata) -- does scaling and whatever is needed
- properties.hasmath = true
- target.nomath = false
- target.MathConstants = target.mathparameters
+ properties.hasmath = true
+ target.nomath = false
+ target.MathConstants = target.mathparameters
+ --
+ local oldmath = properties.oldmath
+ targetproperties.oldmath = oldmath
+ target.oldmath = oldmath
else
- properties.hasmath = false
- target.nomath = true
- target.mathparameters = nil -- nop
+ properties.hasmath = false
+ target.nomath = true
+ target.mathparameters = nil -- nop
end
--
-- Here we support some context specific trickery (this might move to a plugin). During the
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-dsp.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-dsp.lua
index 91ee83b19b2..8d7c3d359d9 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-dsp.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-dsp.lua
@@ -503,7 +503,7 @@ local function readvariationdata(f,storeoffset,factors) -- store
regions[i] = t
end
-- deltas
- if factors then
+ -- if factors then
for i=1,nofdeltadata do
setposition(f,storeoffset+deltadata[i])
local nofdeltasets = readushort(f)
@@ -528,7 +528,7 @@ local function readvariationdata(f,storeoffset,factors) -- store
scales = factors and getscales(usedregions,factors) or nil,
}
end
- end
+ -- end
setposition(f,position)
return regions, deltadata
end
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-imp-italics.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-imp-italics.lua
index 3e172bedee6..6c432d7cf4a 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-imp-italics.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-imp-italics.lua
@@ -79,24 +79,6 @@ if context then
registerotffeature(specification)
registerafmfeature(specification)
- -- no longer used
-
- -- local function initializemathitalics(tfmdata,value) -- yes no delay
- -- tfmdata.properties.mathitalics = toboolean(value)
- -- end
- --
- -- local specification = {
- -- name = "mathitalics",
- -- description = "use alternative math italic correction",
- -- initializers = {
- -- base = initializemathitalics,
- -- node = initializemathitalics,
- -- }
- -- }
- --
- -- registerotffeature(specification)
- -- registerafmfeature(specification)
-
-- only used when testing
local letter = characters.is_letter
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-otl.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-otl.lua
index b8e13f1070b..19de2bb7771 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-otl.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-otl.lua
@@ -52,7 +52,7 @@ local report_otf = logs.reporter("fonts","otf loading")
local fonts = fonts
local otf = fonts.handlers.otf
-otf.version = 3.112 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.version = 3.113 -- beware: also sync font-mis.lua and in mtx-fonts
otf.cache = containers.define("fonts", "otl", otf.version, true)
otf.svgcache = containers.define("fonts", "svg", otf.version, true)
otf.pngcache = containers.define("fonts", "png", otf.version, true)
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-ots.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-ots.lua
index 1f4806ee257..880bcb6d50a 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-ots.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-font-ots.lua
@@ -829,6 +829,9 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
-- of{f-}{}{f}e o{f-}{}{f}fe o{-}{}{ff}e (oe and ff ligature)
-- we can end up here when we have a start run .. testruns start at a disc but
-- so here we have the other case: char + disc
+ --
+ -- Challenge for Kai (latinmodern): \hyphenation{fii-f-f-iif} fiiffiif
+ --
if discfound then
-- don't assume marks in a disc and we don't run over a disc (for now)
local pre, post, replace = getdisc(discfound)
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua
index 0b220327c35..dde25ac75d1 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/fontloader-reference.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/fontloader-reference.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 : 2020-12-30 16:42
+-- merge date : 2021-01-07 16:56
do -- begin closure to overcome local limits and interference
@@ -9268,6 +9268,9 @@ function constructors.scale(tfmdata,specification)
properties.hasmath=true
target.nomath=false
target.MathConstants=target.mathparameters
+ local oldmath=properties.oldmath
+ targetproperties.oldmath=oldmath
+ target.oldmath=oldmath
else
properties.hasmath=false
target.nomath=true
@@ -14016,7 +14019,7 @@ do
local reginit=false
local function updateregions(n)
if regions then
- local current=regions[n] or regions[1]
+ local current=regions[n+1] or regions[1]
nofregions=#current
if axis and n~=reginit then
factors={}
@@ -14585,7 +14588,11 @@ do
popped=3
seacs={}
if regions then
- regions={ regions }
+ regions={}
+ local deltas=data.deltas
+ for i=1,#deltas do
+ regions[i]=deltas[i].regions
+ end
axis=data.factors or false
end
end
@@ -16570,7 +16577,6 @@ local function readvariationdata(f,storeoffset,factors)
end
regions[i]=t
end
- if factors then
for i=1,nofdeltadata do
setposition(f,storeoffset+deltadata[i])
local nofdeltasets=readushort(f)
@@ -16594,7 +16600,6 @@ local function readvariationdata(f,storeoffset,factors)
scales=factors and getscales(usedregions,factors) or nil,
}
end
- end
setposition(f,position)
return regions,deltadata
end
@@ -20779,7 +20784,7 @@ local trace_defining=false registertracker("fonts.defining",function(v) trace_d
local report_otf=logs.reporter("fonts","otf loading")
local fonts=fonts
local otf=fonts.handlers.otf
-otf.version=3.112
+otf.version=3.113
otf.cache=containers.define("fonts","otl",otf.version,true)
otf.svgcache=containers.define("fonts","svg",otf.version,true)
otf.pngcache=containers.define("fonts","png",otf.version,true)
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua
index 2d4e757bc0c..fcbd644158e 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-auxiliary",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / auxiliary functions",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-case-el.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-case-el.lua
new file mode 100644
index 00000000000..1b329c4a65b
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-case-el.lua
@@ -0,0 +1,294 @@
+local unicode_data = require'luaotfload-unicode'
+
+local has_accent = 1
+local has_combining_dialytika = 2
+local has_ypogegrammeni = 4
+local has_other_diacritic = 8
+local has_vowel = 16
+local vowels = {
+ [0x03B1] = true,
+ [0x0391] = true,
+ [0x03B5] = true,
+ [0x0395] = true,
+ [0x03B7] = true,
+ [0x0397] = true,
+ [0x03B9] = true,
+ [0x0399] = true,
+ [0x03BF] = true,
+ [0x039F] = true,
+ [0x03C9] = true,
+ [0x03A9] = true,
+ [0x03C5] = true,
+ [0x03A5] = true,
+ [0x03F5] = true,
+}
+local diacritic_data = {
+ [0x0300] = has_accent,
+ [0x0301] = has_accent,
+ [0x0302] = has_accent,
+ [0x0303] = has_accent,
+ [0x0311] = has_accent,
+ [0x0342] = has_accent,
+ [0x0308] = has_combining_dialytika,
+ [0x0344] = has_accent | has_combining_dialytika,
+ [0x0345] = has_ypogegrammeni,
+ [0x0304] = has_other_diacritic,
+ [0x0306] = has_other_diacritic,
+ [0x0313] = has_other_diacritic,
+ [0x0314] = has_other_diacritic,
+ [0x0343] = has_other_diacritic,
+}
+
+local mapping_tables = unicode_data.casemapping
+local soft_dotted = unicode_data.soft_dotted
+local ccc = unicode_data.ccc
+
+local uppercase = mapping_tables.uppercase
+local lowercase = mapping_tables.lowercase
+local cased = mapping_tables.cased
+local case_ignorable = mapping_tables.case_ignorable
+
+local otfregister = fonts.constructors.features.otf.register
+
+local direct = node.direct
+local is_char = direct.is_char
+local has_glyph = direct.has_glyph
+local uses_font = direct.uses_font
+local getnext = direct.getnext
+local setchar = direct.setchar
+local setdisc = direct.setdisc
+local getdisc = direct.getdisc
+local getfield = direct.getfield
+local remove = direct.remove
+local copy = direct.copy
+local insert_after = direct.insert_after
+local traverse = direct.traverse
+
+local disc = node.id'disc'
+
+local nfd = {} -- FIXME: Data
+
+local data do
+ for cp = 1, 0xFF, 1 do -- FIXME: Correct limits
+ local decomposed = nfd[cp]
+ local first = decomposed and decomposed[1] or cp
+ local upper = uppercase[first]
+ local data = vowels[first] and has_vowel or 0
+ if decomposed then
+ for i=1, #decomposed do
+ data = data | (diacritic_data[decomposed[i]] or 0)
+ end
+ end
+ end
+end
+
+--[[ We make some implicit assumptions about contexts in SpecialCasing.txt here which happened to be true when I wrote the code:
+--
+-- * Before_Dot only appears as Not_Before_Dot
+-- * No other context appears with Not_
+-- * Final_Sigma is never language dependent
+-- * Other contexts are always language dependent
+-- * The only languages with special mappings are Lithuanian (lt/"LTH "/lit), Turkish (tr/"TRK "/tur), and Azeri/Azerbaijani (az/"AZE "/aze)
+]]
+
+local font_lang = setmetatable({}, {__index = function(t, fid)
+ local f = font.getfont(fid)
+ local lang = f.specification.features.normal.language
+ lang = lang == 'lth' and 'lt' or lang == 'trk' and 'tr' or lang == 'aze' and 'az' or false
+ t[fid] = lang
+ return lang
+end})
+
+local function is_Final_Sigma(font, mapping, n, after)
+ mapping = mapping.Final_Sigma
+ if not mapping then return false end
+ mapping = mapping._
+ if not mapping then return false end
+ n = getnext(n)
+ repeat
+ while n do
+ local char, id = is_char(n, font)
+ if id == disc then
+ after = getnext(n)
+ n = getfield(n, 'replace')
+ char, id = is_char(n, font)
+ elseif char then
+ if not case_ignorable[char] then
+ return not cased[char] and mapping
+ end
+ n = getnext(n)
+ else
+ return mapping
+ end
+ end
+ n, after = after
+ until not n
+ return mapping
+end
+
+local function is_More_Above(font, mapping, n, after)
+ mapping = mapping.More_Above
+ if not mapping then return false end
+ mapping = mapping._
+ if not mapping then return false end
+ n = getnext(n)
+ repeat
+ while n do
+ local char, id = is_char(n, font)
+ if id == disc then
+ after = getnext(n)
+ n = getfield(n, 'replace')
+ char, id = is_char(n, font)
+ elseif char then
+ local char_ccc = ccc[char]
+ if not char_ccc then
+ return false
+ elseif char_ccc == 230 then
+ return mapping
+ end
+ n = getnext(n)
+ else
+ return false
+ end
+ end
+ n, after = after
+ until not n
+ return false
+end
+
+local function is_Not_Before_Dot(font, mapping, n, after)
+ mapping = mapping.Not_Before_Dot
+ if not mapping then return false end
+ mapping = mapping._
+ if not mapping then return false end
+ n = getnext(n)
+ repeat
+ while n do
+ local char, id = is_char(n, font)
+ if id == disc then
+ after = getnext(n)
+ n = getfield(n, 'replace')
+ char, id = is_char(n, font)
+ elseif char then
+ local char_ccc = ccc[char]
+ if not char_ccc then
+ return mapping
+ elseif char_ccc == 230 then
+ return char ~= 0x0307 and mapping
+ end
+ n = getnext(n)
+ else
+ return mapping
+ end
+ end
+ n, after = after
+ until not n
+ return mapping
+end
+
+local function is_Language_Mapping(font, mapping, n, after, seen_soft_dotted, seen_I)
+ if not mapping then return false end
+ if seen_soft_dotted then
+ local mapping = mapping.After_Soft_Dotted
+ mapping = mapping and mapping._
+ if mapping then
+ return mapping
+ end
+ end
+ if seen_I then
+ local mapping = mapping.After_I
+ mapping = mapping and mapping._
+ if mapping then
+ return mapping
+ end
+ end
+ return is_More_Above(font, mapping, n, after) or is_Not_Before_Dot(font, mapping, n, after) or mapping._ -- Might be nil
+end
+
+local function process(table)
+ local function processor(head, font, after, seen_cased, seen_soft_dotted, seen_I)
+ local lang = font_lang[font]
+ local n = head
+ while n do
+ do
+ local new = has_glyph(n)
+ if n ~= new then
+ seen_cased, seen_soft_dotted, seen_I = nil
+ end
+ n = new
+ end
+ if not n then break end
+ local char, id = is_char(n, font)
+ if char then
+ local mapping = table[char]
+ if mapping then
+ if tonumber(mapping) then
+ setchar(n, mapping)
+ else
+ mapping = seen_cased and is_Final_Sigma(font, mapping, n, after)
+ or lang and is_Language_Mapping(font, mapping[lang], n, after, seen_soft_dotted, seen_I)
+ or mapping._
+ if #mapping == 0 then
+ head, n = remove(head, n)
+ goto continue
+ else
+ setchar(n, mapping[1])
+ for i=2, #mapping do
+ head, n = insert_after(head, n, copy(n))
+ setchar(n, mapping[i])
+ end
+ end
+ end
+ end
+ if not case_ignorable[char] then
+ seen_cased = cased[char] or nil
+ end
+ local char_ccc = ccc[char]
+ if not char_ccc or char_ccc == 230 then
+ seen_I = char == 0x49 or nil
+ seen_soft_dotted = soft_dotted[char]
+ end
+ elseif id == disc and uses_font(n, font) then
+ local pre, post, rep = getdisc(n)
+ local after = getnext(n)
+ pre, post, rep, seen_cased, seen_soft_dotted, seen_I =
+ processor(pre, font, nil, seen_cased, seen_soft_dotted, seen_I),
+ processor(post, font, after),
+ processor(rep, font, after, seen_cased, seen_soft_dotted, seen_I)
+ setdisc(n, pre, post, rep)
+ else
+ seen_cased, seen_soft_dotted, seen_I = nil
+ end
+ n = getnext(n)
+ ::continue::
+ end
+ return head, seen_cased, seen_soft_dotted, seen_I
+ end
+ return function(head, font) return (processor(head, font)) end
+end
+
+local upper_process = process(uppercase)
+otfregister {
+ name = 'upper',
+ description = 'Map to uppercase',
+ default = false,
+ processors = {
+ position = 1,
+ plug = upper_process,
+ node = upper_process,
+ base = upper_process,
+ },
+}
+
+local lower_process = process(lowercase)
+otfregister {
+ name = 'lower',
+ description = 'Map to lowercase',
+ default = false,
+ processors = {
+ position = 1,
+ plug = lower_process,
+ node = lower_process,
+ base = lower_process,
+ },
+}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua
index c1f8a63a8ed..fb1cbd34877 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-colors",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / color",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Dohyun Kim, David Carlisle",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua
index e5e1ed24f06..07ac92096dc 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-configuration",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / config file reader",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
index da2d9965a31..288f4a21b2c 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-database",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / database",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-diagnostics.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-diagnostics.lua
index 366c7c98ece..67970dc4c55 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-diagnostics.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-diagnostics.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-diagnostics",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload-tool submodule / diagnostics",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-dvi.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-dvi.lua
index 33083045d48..12ca5d7d562 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-dvi.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-dvi.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-dvi",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / DVI",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua
index 73993eead8b..d9f68f4d4d8 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-embolden",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / embolden",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fakesc.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fakesc.lua
new file mode 100644
index 00000000000..421f6fd24d2
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fakesc.lua
@@ -0,0 +1,204 @@
+-----------------------------------------------------------------------
+-- FILE: luaotfload-fakesc.lua
+-- DESCRIPTION: part of luaotfload / fakesc
+-----------------------------------------------------------------------
+
+assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
+ name = "luaotfload-fakesc",
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
+ description = "luaotfload submodule / fakesc",
+ license = "GPL v2.0",
+ author = "Marcel Krüger"
+}
+
+local nodenew = node.direct.new
+local getfont = font.getfont
+local setfont = node.direct.setfont
+local getwhd = node.direct.getwhd
+local insert_after = node.direct.insert_after
+local traverse_char = node.direct.traverse_char
+local protect_glyph = node.direct.protect_glyph
+local otffeatures = fonts.constructors.newfeatures "otf"
+
+local sep = lpeg.P' '^0 * ';' * lpeg.P' '^0
+local codepoint = lpeg.S'0123456789ABCDEF'^4/function(c)return tonumber(c, 16)end
+local codepoint_range = codepoint * ('..' * codepoint + lpeg.Cc(false))
+local function multirawset(table, key1, key2, value)
+ for key = key1,(key2 or key1) do
+ rawset(table, key, value)
+ end
+ return table
+end
+local script_extensions do
+ local entry = lpeg.Cg(codepoint_range * sep * lpeg.Ct((lpeg.C(lpeg.R'AZ' * lpeg.R'az'^1))^1 * ' ') * '#')^-1 * (1-lpeg.P'\n')^0 * '\n'
+ local file = lpeg.Cf(
+ lpeg.Ct''
+ * entry^0
+ , multirawset)
+
+ local f = io.open(kpse.find_file"ScriptExtensions.txt")
+ script_extensions = file:match(f:read'*a')
+ f:close()
+ for cp,t in next, script_extensions do
+ for i=1,#t do
+ t[t[i]] = true
+ end
+ end
+end
+local script_mapping do
+ -- We could extract these from PropertyValueAliases.txt...
+ local script_aliases = {
+ Adlam = "Adlm", Caucasian_Albanian = "Aghb", Ahom = "Ahom", Arabic = "Arab",
+ Imperial_Aramaic = "Armi", Armenian = "Armn", Avestan = "Avst",
+ Balinese = "Bali", Bamum = "Bamu", Bassa_Vah = "Bass", Batak = "Batk",
+ Bengali = "Beng", Bhaiksuki = "Bhks", Bopomofo = "Bopo", Brahmi = "Brah",
+ Braille = "Brai", Buginese = "Bugi", Buhid = "Buhd", Chakma = "Cakm",
+ Canadian_Aboriginal = "Cans", Carian = "Cari", Cham = "Cham",
+ Cherokee = "Cher", Coptic = "Copt", Cypriot = "Cprt", Cyrillic = "Cyrl",
+ Devanagari = "Deva", Dogra = "Dogr", Deseret = "Dsrt", Duployan = "Dupl",
+ Egyptian_Hieroglyphs = "Egyp", Elbasan = "Elba", Elymaic = "Elym",
+ Ethiopic = "Ethi", Georgian = "Geor", Glagolitic = "Glag",
+ Gunjala_Gondi = "Gong", Masaram_Gondi = "Gonm", Gothic = "Goth",
+ Grantha = "Gran", Greek = "Grek", Gujarati = "Gujr", Gurmukhi = "Guru",
+ Hangul = "Hang", Han = "Hani", Hanunoo = "Hano", Hatran = "Hatr",
+ Hebrew = "Hebr", Hiragana = "Hira", Anatolian_Hieroglyphs = "Hluw",
+ Pahawh_Hmong = "Hmng", Nyiakeng_Puachue_Hmong = "Hmnp",
+ Katakana_Or_Hiragana = "Hrkt", Old_Hungarian = "Hung", Old_Italic = "Ital",
+ Javanese = "Java", Kayah_Li = "Kali", Katakana = "Kana",
+ Kharoshthi = "Khar", Khmer = "Khmr", Khojki = "Khoj", Kannada = "Knda",
+ Kaithi = "Kthi", Tai_Tham = "Lana", Lao = "Laoo", Latin = "Latn",
+ Lepcha = "Lepc", Limbu = "Limb", Linear_A = "Lina", Linear_B = "Linb",
+ Lisu = "Lisu", Lycian = "Lyci", Lydian = "Lydi", Mahajani = "Mahj",
+ Makasar = "Maka", Mandaic = "Mand", Manichaean = "Mani", Marchen = "Marc",
+ Medefaidrin = "Medf", Mende_Kikakui = "Mend", Meroitic_Cursive = "Merc",
+ Meroitic_Hieroglyphs = "Mero", Malayalam = "Mlym", Modi = "Modi",
+ Mongolian = "Mong", Mro = "Mroo", Meetei_Mayek = "Mtei", Multani = "Mult",
+ Myanmar = "Mymr", Nandinagari = "Nand", Old_North_Arabian = "Narb",
+ Nabataean = "Nbat", Newa = "Newa", Nko = "Nkoo", Nushu = "Nshu",
+ Ogham = "Ogam", Ol_Chiki = "Olck", Old_Turkic = "Orkh", Oriya = "Orya",
+ Osage = "Osge", Osmanya = "Osma", Palmyrene = "Palm", Pau_Cin_Hau = "Pauc",
+ Old_Permic = "Perm", Phags_Pa = "Phag", Inscriptional_Pahlavi = "Phli",
+ Psalter_Pahlavi = "Phlp", Phoenician = "Phnx", Miao = "Plrd",
+ Inscriptional_Parthian = "Prti", Rejang = "Rjng", Hanifi_Rohingya = "Rohg",
+ Runic = "Runr", Samaritan = "Samr", Old_South_Arabian = "Sarb",
+ Saurashtra = "Saur", SignWriting = "Sgnw", Shavian = "Shaw",
+ Sharada = "Shrd", Siddham = "Sidd", Khudawadi = "Sind", Sinhala = "Sinh",
+ Sogdian = "Sogd", Old_Sogdian = "Sogo", Sora_Sompeng = "Sora",
+ Soyombo = "Soyo", Sundanese = "Sund", Syloti_Nagri = "Sylo",
+ Syriac = "Syrc", Tagbanwa = "Tagb", Takri = "Takr", Tai_Le = "Tale",
+ New_Tai_Lue = "Talu", Tamil = "Taml", Tangut = "Tang", Tai_Viet = "Tavt",
+ Telugu = "Telu", Tifinagh = "Tfng", Tagalog = "Tglg", Thaana = "Thaa",
+ Thai = "Thai", Tibetan = "Tibt", Tirhuta = "Tirh", Ugaritic = "Ugar",
+ Vai = "Vaii", Warang_Citi = "Wara", Wancho = "Wcho", Old_Persian = "Xpeo",
+ Cuneiform = "Xsux", Yi = "Yiii", Zanabazar_Square = "Zanb",
+ Inherited = "Zinh", Common = "Zyyy", Unknown = "Zzzz",
+ }
+ local entry = lpeg.Cg(codepoint_range * sep * ((lpeg.R'AZ' + lpeg.R'az' + '_')^1/script_aliases))^-1 * (1-lpeg.P'\n')^0 * '\n'
+ -- local entry = lpeg.Cg(codepoint_range * sep * lpeg.Cc(true))^-1 * (1-lpeg.P'\n')^0 * '\n'
+ local file = lpeg.Cf(
+ lpeg.Ct''
+ * entry^0
+ , multirawset)
+
+ local f = io.open(kpse.find_file"Scripts.txt")
+ script_mapping = file:match(f:read'*a')
+ f:close()
+end
+
+local additional_scripts_tables = { }
+
+local additional_scripts_fonts = setmetatable({}, {
+ __index = function(t, fid)
+ local f = font.getfont(fid)
+ -- table.tofile('myfont2', f)
+ local res = f and f.additional_scripts or false
+ t[fid] = res
+ return res
+ end,
+})
+
+local function makecombifont(tfmdata, _, additional_scripts)
+ local basescript = tfmdata.properties.script
+ local scripts = {basescript = false}
+ additional_scripts = additional_scripts_tables[additional_scripts]
+ for script, fontname in pairs(additional_scripts) do
+ if script ~= basescript then
+ local f = fonts.definers.read(fontname, tfmdata.size)
+ local fid
+ if type(f) == 'table' then
+ fid = font.define(f)
+ else
+ error[[FIXME???]]
+ end
+ scripts[script] = {
+ fid = fid,
+ font = f,
+ characters = f.characters,
+ }
+ end
+ end
+ tfmdata.additional_scripts = scripts
+end
+
+local glyph_id = node.id'glyph'
+-- TODO: unset last_script, matching parentheses etc
+function domultiscript(head, _, _, _, direction)
+ head = node.direct.todirect(head)
+ local last_fid, last_fonts, last_script
+ for cur, cid, fid in traverse_char(head) do
+ if fid ~= last_fid then
+ last_fid, last_fonts, last_script = fid, additional_scripts_fonts[fid]
+ end
+ if last_fonts then
+ local mapped_scr = script_mapping[cid]
+ if mapped_scr == "Zinh" then
+ mapped_scr = last_script
+ else
+ local additional_scr = script_extensions[cid]
+ if additional_scripts then
+ if additional_scripts[last_script] then
+ mapped_scr = last_script
+ elseif not last_fonts[mapped_scr] then
+ for i = 1, #additional_scripts do
+ if last_fonts[additional_scripts[i]] then
+ mapped_scr = additional_scripts[i]
+ break
+ end
+ end
+ end
+ elseif mapped_scr == "Zyyy" then
+ mapped_scr = last_script
+ end
+ end
+ last_script = mapped_scr
+ local mapped_font = last_fonts[mapped_scr]
+ if mapped_font then
+ setfont(cur, mapped_font.fid)
+ end
+ end
+ end
+end
+
+function luaotfload.add_multiscript(name, fonts)
+ if fonts == nil then
+ fonts = name
+ name = #additional_scripts_fonts + 1
+ end
+ additional_scripts_tables[name] = fonts
+ return name
+end
+
+otffeatures.register {
+ name = "multiscript",
+ description = "Combine fonts for multiple scripts",
+ manipulators = {
+ node = makecombifont,
+ },
+ -- processors = { -- processors would be nice, but they are applied
+ -- -- too late for our purposes
+ -- node = donotdef,
+ -- }
+}
+
+--- vim:sw=2:ts=2:expandtab:tw=71
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua
index 17bd7ca404a..0caef93589c 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-fallback",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / fallback",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua
index 67c9f93565a..adce910c4e1 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-features",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / features",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-filelist.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-filelist.lua
index 69195603ede..10421ee372f 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-filelist.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-filelist.lua
@@ -6,8 +6,8 @@
if luaotfload_module then luaotfload_module {
name = "luaotfload-filelist",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / filelist",
license = "GPL v2.0"
} end
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-glyphlist.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-glyphlist.lua
index aefc8369c6c..7a34f29ca18 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-glyphlist.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-glyphlist.lua
@@ -1,8 +1,8 @@
if luaotfload_module then
luaotfload_module {
name = "luaotfload-glyphlist",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / autogenerated glyphlist",
copyright = "derived from https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt",
original = "Adobe Glyph List, version 2.0, September 20, 2002",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua
index 5be4acfa650..f470b13772f 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-define",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / HarfBuzz font loading",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua
index c40aa3b72e4..bf7028c54de 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-plug",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / HarfBuzz shaping",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua
index 3b67738fe53..c0ec8cd84b4 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-init",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / initialization",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua
index c1a3d6f1b7a..bbdaa729e2a 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-letterspace",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / letterspacing",
license = "GPL v2.0",
copyright = "PRAGMA ADE / ConTeXt Development Team",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua
index 84c5555f5db..e58f2429fef 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua
@@ -8,8 +8,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-loaders",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / callback handling",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua
index 58fc403e62b..38208241f76 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-log",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / logging",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua
index a632ab4c6a6..7caae3a2221 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-multiscript",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / multiscript",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua
index 7b9664fa7e5..aa4ce3076e9 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-notdef",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / notdef",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
index 7810c3a49e6..40973db8824 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-parsers",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / parsers",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua
index 2ea85de7811..4aa27a513bb 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua
@@ -11,8 +11,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-resolvers",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / resolvers",
license = "GPL v2.0"
}
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua
index b6c34b9e3eb..003dda6c07b 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-script",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / Script helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
index 0ad3c01ead3..ef89e65010b 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
@@ -1,99 +1,99 @@
return {
["hashes"]={
- { "fontloader-2020-12-30.lua", "68ad807e7fdc2161801a16d1d404e1c4" },
- { "fontloader-util-fil.lua", "a617cad49fc028e99f0f30bce8b2b623" },
- { "fontloader-util-str.lua", "a2041dad54b982ad124cbc764f5de43b" },
- { "fontloader-l-unicode.lua", "a4464b61c123f0454bea92c1cf502891" },
- { "fontloader-l-math.lua", "a373be3ed2db0d5f98588fa81abca48f" },
- { "fontloader-l-boolean.lua", "18ed6c4b2c40dd87224ea33229548d20" },
- { "fontloader-l-file.lua", "60ddd3948d9de7bde8b4a0f5c51ff9f5" },
- { "fontloader-l-io.lua", "a4042e9d6bce71c61fdd94e6e17f2bf4" },
- { "fontloader-l-table.lua", "20c03ae1b81e902217f3f76995b9d294" },
- { "fontloader-l-string.lua", "e1347bef0eeeff9f098df83b30b32df9" },
- { "fontloader-l-function.lua", "f771cc91839ebcdfc094083434fbe00f" },
- { "fontloader-l-lpeg.lua", "c3407de16bcedd73652250b000b39e98" },
- { "fontloader-l-lua.lua", "c8dbb33df962e1b945b91b906b3c15c4" },
- { "fontloader-fonts-gbn.lua", "d25472d54c4841db43a745764a63533e" },
- { "fontloader-fonts-lig.lua", "b9dbe77ce747d4c35bb2a20ffbe5aa51" },
- { "fontloader-fonts-ext.lua", "01015ab3758cdc2af29394e6d502a91a" },
- { "fontloader-fonts-def.lua", "5ad79120ebc5e60f4d322fb3ee13bffe" },
- { "fontloader-fonts-tfm.lua", "3bbba3214fd0b8c6f35ad85592fc2917" },
- { "fontloader-fonts-enc.lua", "3e71a54297e8f85a1ac438bb0f20dd79" },
- { "fontloader-fonts-mis.lua", "bc9eb43c27f63ce9d0fff67e104fe1c6" },
- { "fontloader-basics-chr.lua", "58b7ef0c486e06090b362971b9f85e27" },
- { "fontloader-basics-nod.lua", "6549c88db8cf4c6ae005a2e08f223d4b" },
- { "fontloader-font-imp-effects.lua", "231cda056b88f6dc282fab9d7643d380" },
- { "fontloader-font-imp-italics.lua", "058fb834c11c6ac30c280b29e496966e" },
- { "fontloader-font-imp-ligatures.lua", "043daa4fcccf2560868da359d71d3a4a" },
- { "fontloader-font-imp-tex.lua", "77c374b0ef00c2fb12188ec42beb4257" },
- { "fontloader-font-shp.lua", "72de6029980ac796ec6ec76fa3ec8684" },
- { "fontloader-font-def.lua", "226b4d26ede7fa7be8e45b7f0d93e781" },
- { "fontloader-font-lua.lua", "55b281fb98f7bd848fc19928f376f647" },
- { "fontloader-font-afk.lua", "54d554530e75c57c56ee76234724e26d" },
- { "fontloader-font-one.lua", "2e52d1e42764f68b779522bda9569480" },
- { "fontloader-font-onr.lua", "7a9ece7bf3e36b5f0adf295a9a2a2989" },
- { "fontloader-font-ocl.lua", "ab81576f20e2d37bc8707e1dbd3decf2" },
- { "fontloader-font-osd.lua", "61f05fcf91add1aa5dac9bc8b235adc9" },
- { "fontloader-font-otc.lua", "1204a2fdc436e644127c0aa38ab69607" },
- { "fontloader-font-ots.lua", "a83d5992a82b706c0ffdb5c2778534f1" },
- { "fontloader-font-ota.lua", "f31232af3a694ae3d50380a5a92f88d3" },
- { "fontloader-font-oup.lua", "1700a2dac4f8b105c187d4e5b84cecdf" },
- { "fontloader-font-otj.lua", "a37a1007b8a92c9e7d24064180c2a772" },
- { "fontloader-font-oto.lua", "24238a7c600d090a8ee88312321dd9b3" },
- { "fontloader-font-otl.lua", "70237f19b76c4bc75f0c6e89038fb49a" },
- { "fontloader-font-ott.lua", "1249b7018dba80e080fc478a38aa6756" },
- { "fontloader-font-oti.lua", "dbae7722baae24d917a17176553825cf" },
- { "fontloader-font-dsp.lua", "10eb256f4bcb9c5eabd48048e2da5eab" },
- { "fontloader-font-ttf.lua", "ebef049a169c04edd19902fd66ddea44" },
- { "fontloader-font-cff.lua", "aa9038651d9fedd2b76cacd1f69fd742" },
- { "fontloader-font-otr.lua", "7a2f7a9e9627b29158e1822ea3c650ab" },
- { "fontloader-font-vfc.lua", "04fa0ffad5c51198c7c19462949f54ed" },
- { "fontloader-font-map.lua", "a03653ea3c5f042b457d54ed678d6df3" },
- { "fontloader-font-cid.lua", "4d87988efa86020a14708ee03c23415f" },
- { "fontloader-font-con.lua", "cbccccc4a5016196d62332a365aa8b72" },
- { "fontloader-font-ini.lua", "4dee96e1e1474d324dd126bd5d375df8" },
- { "fontloader-data-con.lua", "de6ae0997b0e70a23bcc9afff5d8b072" },
- { "fontloader-reference.lua", "957f358a48ea6fcbc78a8701f947d7e5" },
- { "fontloader-basics-gen.lua", "7bcfb5e4f48a1a34be6ddfcee2b1e49d" },
- { "mktests", "c7cff7025962922944376acc1ffa9c47" },
- { "mkstatus", "f3b00b5999440afce64bdc448f3fda9a" },
- { "mkcharacters", "92c24bb582fc84c0365634f29eb89863" },
- { "mkglyphlist", "95bbf91338214d40b2102114285ccd3f" },
- { "mkimport", "5dacc09f3358ba9b90cf3a804f9a535c" },
- { "luaotfload-glyphlist.lua", "bb6a9912a0944b3b21a61fce247dd728" },
- { "luaotfload-characters.lua", "6a46f4749368e4f56a863da9c61b7bd6" },
- { "luaotfload-dvi.lua", "34e1550905555da63304e07797168c69" },
- { "luaotfload-tounicode.lua", "09fa475eeb7b160d3eb124e9107d4e03" },
- { "luaotfload-unicode.lua", "153f97b086fd38dcb7f4850d95a41016" },
- { "luaotfload-resolvers.lua", "2441b9624775fbcea6617e6cc72b424d" },
- { "luaotfload-parsers.lua", "623d33f43813eda562cbfef5528753de" },
- { "luaotfload-fallback.lua", "ec702c1c9407eba7bfe80b59c36f3f67" },
- { "luaotfload-szss.lua", "ee4c0c070dcacf4d3e43f52948611392" },
- { "luaotfload-scripts.lua", "14a19085cd5288592ebd5e24acf8514a" },
- { "luaotfload-multiscript.lua", "4a283df608be713b0b666515fb6b9789" },
- { "luaotfload-loaders.lua", "f0eeb293d8f448413631b1ffff554e39" },
- { "luaotfload-harf-plug.lua", "34182344e7985d1267dacde37f387433" },
- { "luaotfload-harf-define.lua", "252c36178f4f9ab066bdc15adfe809f1" },
- { "luaotfload-notdef.lua", "06278786a6f2f8ddd3749b5d75f611db" },
- { "luaotfload-embolden.lua", "8bdfebc528d078086c7fd0747815df74" },
- { "luaotfload-letterspace.lua", "57d6026196fa62f9891d7a7a7300f63f" },
- { "luaotfload-features.lua", "2219adcecef7362bbbe46da2e5ed005b" },
- { "luaotfload-database.lua", "e2bea14191641d3a18b04064752d0fd4" },
- { "luaotfload-configuration.lua", "dfa0521ef327c68573ea587ed7b989c8" },
- { "luaotfload-colors.lua", "32bf6714aa19f6c291922cd1be01b629" },
- { "luaotfload-auxiliary.lua", "4c18ffcc0d1cbef3ad4db2b6440a863e" },
- { "luaotfload-filelist.lua", "8bb0a321254e6f04a1fa776d2f67747f" },
- { "luaotfload-tool.lua", "ac7b0adfd9d0096228bed8ae61540a70" },
- { "luaotfload-diagnostics.lua", "21bca70ad0b6f7dd1d9d57c7b1513809" },
- { "luaotfload-log.lua", "d9c45eff233d71c3824f3a579694d737" },
- { "luaotfload-init.lua", "265f1bfe8789fbb0cc3bff3a780f5494" },
- { "luaotfload-main.lua", "f5f771d1cf5c8c4a2519a8d46aed1241" },
+ { "fontloader-2021-01-07.lua", "ef54bfa34416e2c85fa48d3195c67fd2" },
+ { "fontloader-util-fil.lua", "aae2a2add764144bb58dd8216fd59260" },
+ { "fontloader-util-str.lua", "c975ff7bbd178163cf47d9e9296c8b4b" },
+ { "fontloader-l-unicode.lua", "f368874f11f3c525de5864fd413e4b24" },
+ { "fontloader-l-math.lua", "082add08e0bb79f39191ae9534a79849" },
+ { "fontloader-l-boolean.lua", "abe28515dd33e8f6c416c09bca351cf8" },
+ { "fontloader-l-file.lua", "352b42b8360ada02ceb26a41f0bd2a76" },
+ { "fontloader-l-io.lua", "bbcc4824d0ded30b415d7d2d5763028a" },
+ { "fontloader-l-table.lua", "0330da8b3a08d39876def70df8d9c0e5" },
+ { "fontloader-l-string.lua", "9457f2af85723e0e6c46d0b5122e9000" },
+ { "fontloader-l-function.lua", "a7e68a9703c35238729da41a474e951b" },
+ { "fontloader-l-lpeg.lua", "10bdaef44175902917691835010ae5f5" },
+ { "fontloader-l-lua.lua", "420bc442e6d81f4624728a6c56fcd175" },
+ { "fontloader-fonts-gbn.lua", "10ecdf01e7c926e5128ad8a9dff4d677" },
+ { "fontloader-fonts-lig.lua", "fbd251eea3810a43a8d5542319361d68" },
+ { "fontloader-fonts-ext.lua", "32013cbc5d5d336be8b1d1e5879d86c4" },
+ { "fontloader-fonts-def.lua", "f435e0875f203f343157baeff876ec9c" },
+ { "fontloader-fonts-tfm.lua", "f0eb5e2a8068b17ad401bb7efdba1630" },
+ { "fontloader-fonts-enc.lua", "5ff4ca50493d7c4ecea0e15c203099f0" },
+ { "fontloader-fonts-mis.lua", "17e967c9ec4d001deefd43ddf25e98f7" },
+ { "fontloader-basics-chr.lua", "64fafe4eaf55d64aead6513c1e74a024" },
+ { "fontloader-basics-nod.lua", "4b5c3c63e19df1b3f37fae7f87c25bda" },
+ { "fontloader-font-imp-effects.lua", "a2dde5e071fcb3fc7b90f2bcd5aa4f22" },
+ { "fontloader-font-imp-italics.lua", "defcb415bc1e0a0999b27773902adc18" },
+ { "fontloader-font-imp-ligatures.lua", "26ffcf089391445f7af59536c8814364" },
+ { "fontloader-font-imp-tex.lua", "ceb087ef6fa2f89aed7179f60ddf8f35" },
+ { "fontloader-font-shp.lua", "5ff497c993112d4fef4c148348d964eb" },
+ { "fontloader-font-def.lua", "b9d908c2338b7dc443ce9d1e9fcb7139" },
+ { "fontloader-font-lua.lua", "1fbfdf7b689b2bdfd0e3bb9bf74ce136" },
+ { "fontloader-font-afk.lua", "9da14e0fb22129c053acc599d1312544" },
+ { "fontloader-font-one.lua", "53cd565030e919da984b50471cc3be37" },
+ { "fontloader-font-onr.lua", "6d161533f3437435e12a0ad64866df44" },
+ { "fontloader-font-ocl.lua", "797b5c71bf819c5f4fb314a4d646e9a7" },
+ { "fontloader-font-osd.lua", "73c9531c79df5ada320cb20777f7ed49" },
+ { "fontloader-font-otc.lua", "0f12230ea07b5151f75d52726977e91f" },
+ { "fontloader-font-ots.lua", "c780a471147527f4ddc139e017927ffe" },
+ { "fontloader-font-ota.lua", "ad1d5de06400f88829509e1f3ff2b473" },
+ { "fontloader-font-oup.lua", "6f46aa00ae1c20c43f8ffaf329dc8695" },
+ { "fontloader-font-otj.lua", "8de59cb9b043e5f73c6b9f7cc8f6978e" },
+ { "fontloader-font-oto.lua", "2b1d6bc63b2ebf8f2655a15e1cda6541" },
+ { "fontloader-font-otl.lua", "f4e6652a191003493389de230b14cfb3" },
+ { "fontloader-font-ott.lua", "673ed11e1d159997f535bfec5fa73808" },
+ { "fontloader-font-oti.lua", "309a75f9c14b77d87e94eba827dc4e71" },
+ { "fontloader-font-dsp.lua", "174ce11f3ba0bddf270f48d8d2addd56" },
+ { "fontloader-font-ttf.lua", "ffffc827e1bcddc33a2b615340ecff7f" },
+ { "fontloader-font-cff.lua", "2b677fad52d9999d0685e8525271a8cc" },
+ { "fontloader-font-otr.lua", "64dcbbc7107538723990e1119a80a9f8" },
+ { "fontloader-font-vfc.lua", "a81c29eda98cd62cbebdb6c93544b50d" },
+ { "fontloader-font-map.lua", "c4a39db5ad822b348aa61bca5f4a599a" },
+ { "fontloader-font-cid.lua", "22b0367742fb253deef84ef7ccf5e8de" },
+ { "fontloader-font-con.lua", "724e5dd14aec2d4d189f8619898004cf" },
+ { "fontloader-font-ini.lua", "5343de60613adb24cdd7a8d2ee1d153c" },
+ { "fontloader-data-con.lua", "23a0f5386d46a1c157ae82a373e35fa0" },
+ { "fontloader-reference.lua", "4807209e6a35420dd7528e9ec02f11da" },
+ { "fontloader-basics-gen.lua", "4bc43036e9796fccb0b8869f4b05bf2e" },
+ { "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
+ { "mkstatus", "d3bc6e7d0f6deb80db4edc6975e2ac5c" },
+ { "mkcharacters", "bfca0e96e1e351afe7077502f9595af9" },
+ { "mkglyphlist", "7a8a8fdc0eac7fac2f13ec8f4e8e7aa9" },
+ { "mkimport", "7d62f1042e548f8b9368f26b9ba4be5c" },
+ { "luaotfload-glyphlist.lua", "6097b4fd28b303a3ae7577e94f86610d" },
+ { "luaotfload-characters.lua", "76415ca3ede312cad6e09038323489ae" },
+ { "luaotfload-dvi.lua", "a0d33e699c250c0e4abd4cfa1b974b6e" },
+ { "luaotfload-tounicode.lua", "e07e112222777070250fbc980b2e6b85" },
+ { "luaotfload-unicode.lua", "1d7fd6ab63640cb6c8e2091ac5a57915" },
+ { "luaotfload-resolvers.lua", "b387d9435738f7ce8cf1e6af86b565a6" },
+ { "luaotfload-parsers.lua", "dba42cb2f6bbfa13b9a56d0e4a2b2f44" },
+ { "luaotfload-fallback.lua", "a3c8c048b14a304d3352871014ef1343" },
+ { "luaotfload-szss.lua", "2413a2be98181fe77f7e110369194769" },
+ { "luaotfload-scripts.lua", "2b924be852e17191e651faf5a2097e12" },
+ { "luaotfload-multiscript.lua", "db7b6c7791b4b909d12234620ff7973d" },
+ { "luaotfload-loaders.lua", "d169564522ac7194e7410d8263cd1b31" },
+ { "luaotfload-harf-plug.lua", "8fdc1ba513a6026546b883259e559c7e" },
+ { "luaotfload-harf-define.lua", "1c9a663bb7bfa650b93dcf01d5450675" },
+ { "luaotfload-notdef.lua", "26fed1a76150718e05c8c56b1983ebdd" },
+ { "luaotfload-embolden.lua", "5506419bc583d450f252542b1105d6ce" },
+ { "luaotfload-letterspace.lua", "1a518a55f6663ce13866416a5b94d6a4" },
+ { "luaotfload-features.lua", "33fdd06674606d043599dc4ea9b2a56b" },
+ { "luaotfload-database.lua", "4a0f9f3b500df0d8a8234a0954065e46" },
+ { "luaotfload-configuration.lua", "589ca99522479a0929d6824bafa36f63" },
+ { "luaotfload-colors.lua", "7c201914c79310d9e79e75dfc7ee982b" },
+ { "luaotfload-auxiliary.lua", "8e427ec79ced91d9fc6fbcece159d042" },
+ { "luaotfload-filelist.lua", "3cd6b9d12ba2fb48783e393593cd9afd" },
+ { "luaotfload-tool.lua", "f4534033397387433601040694b70c6b" },
+ { "luaotfload-diagnostics.lua", "473e1a3cd00e4b277b1f7e17b13254da" },
+ { "luaotfload-log.lua", "809e4afac4e070b619512461a6fedd90" },
+ { "luaotfload-init.lua", "e3b832a9efc91c977044383640835069" },
+ { "luaotfload-main.lua", "b19c9cc34cf1d676c39f872cfb41aef6" },
},
["notes"]={
- ["committer"]="Ulrike Fischer <fischer@troubleshooting-tex.de>",
- ["description"]="v3.16/2020-12-31",
- ["loader"]="fontloader-2020-12-30.lua",
- ["revision"]="d1423b56efe2649e2881657747cee8d54cf64e12",
- ["timestamp"]="2020-12-31 12:35:44 +0100",
+ ["committer"]="Marcel Fabian Krüger <tex@2krueger.de>",
+ ["description"]="v3.17/2021-01-08",
+ ["loader"]="fontloader-2021-01-07.lua",
+ ["revision"]="359a8a50a0d1f778e358cc1507b6f08ec17b6898",
+ ["timestamp"]="2021-01-08 14:15:42 +0100",
},
} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
index c4c0c1010e6..d78428ca962 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-suppress",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / suppress",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
index 4c7de4d11bc..88b02350f08 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-szss",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / Special feature handling",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
index f4eeec1125b..5c927850667 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-tounicode",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / tounicode",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
index a05c660a363..5320c48ab2d 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-unicode",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "luaotfload submodule / Unicode helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
index 843c84a3bf5..4a3cdb78aee 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
@@ -20,8 +20,8 @@ local authors = "\z
-- version number is used below!
local ProvidesLuaModule = {
name = "luaotfload",
- version = "3.16", --TAGVERSION
- date = "2020-12-31", --TAGDATE
+ version = "3.17", --TAGVERSION
+ date = "2021-01-08", --TAGDATE
description = "Lua based OpenType font support",
author = authors,
copyright = authors,
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.sty b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.sty
index d9a3397d142..915b418693a 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.sty
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.sty
@@ -1,4 +1,4 @@
-%% Copyright (C) 2009-2020
+%% Copyright (C) 2009-2021
%%
%% by Elie Roux <elie.roux@telecom-bretagne.eu>
%% and Khaled Hosny <khaledhosny@eglug.org>
@@ -39,7 +39,7 @@
\fi
\ifdefined\ProvidesPackage
\ProvidesPackage{luaotfload}%
- [2020/12/31 v3.16 OpenType layout system]
+ [2021/01/08 v3.17 OpenType layout system]
\fi
\directlua{
if xpcall(function ()%