summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/luaotfload
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-29 03:02:00 +0000
committerNorbert Preining <norbert@preining.info>2024-02-29 03:02:00 +0000
commitcd2d035c39e23ef720cdd58ad3e377f7c60e9858 (patch)
treeca7f11c779775df04a7709bdd75d46d53b380f2e /macros/luatex/generic/luaotfload
parent0afdc3e8c2d8e96d0cd0a5f05f1481a4eecc51d2 (diff)
CTAN sync 202402290301
Diffstat (limited to 'macros/luatex/generic/luaotfload')
-rw-r--r--macros/luatex/generic/luaotfload/NEWS4
-rw-r--r--macros/luatex/generic/luaotfload/README.md2
-rw-r--r--macros/luatex/generic/luaotfload/filegraph.pdfbin40007 -> 40007 bytes
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-basics-gen.lua3
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-arabic.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-colors.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-conf.pdfbin79376 -> 79552 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-configuration.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-database.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-dvi.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-embolden.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-fallback.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-features.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-filelist.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-define.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua21
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-init.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-latex.pdfbin506279 -> 506592 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-letterspace.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-loaders.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-log.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-main.tex10
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-multiscript.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-notdef.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-parsers.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-realpath.lua28
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-resolvers.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-scripts.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-status.lua62
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-suppress.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-szss.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.142
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.pdfbin76779 -> 76970 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.rst2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tounicode.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-unicode.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.56
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.rst2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.sty2
-rw-r--r--macros/luatex/generic/luaotfload/scripts-demo.pdfbin21682 -> 21682 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo-graphite.pdfbin8562 -> 8562 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo.pdfbin8478 -> 8478 bytes
50 files changed, 133 insertions, 113 deletions
diff --git a/macros/luatex/generic/luaotfload/NEWS b/macros/luatex/generic/luaotfload/NEWS
index 17ce0a00c4..eae0df4b3d 100644
--- a/macros/luatex/generic/luaotfload/NEWS
+++ b/macros/luatex/generic/luaotfload/NEWS
@@ -1,5 +1,9 @@
Change History
--------------
+2024-02-28 luaotfload v3.28
+
+ * Improving compatibility with Windows paths
+
2024-02-14 luaotfload v3.27
* Improved support for arabic mark rendering in \texttt{node} mode.
diff --git a/macros/luatex/generic/luaotfload/README.md b/macros/luatex/generic/luaotfload/README.md
index ed2ece5f29..e99e633fe4 100644
--- a/macros/luatex/generic/luaotfload/README.md
+++ b/macros/luatex/generic/luaotfload/README.md
@@ -1,6 +1,6 @@
# The Luaotfload Package
-VERSION: 3.27
+VERSION: 3.28
DATE: 2024-02-14
diff --git a/macros/luatex/generic/luaotfload/filegraph.pdf b/macros/luatex/generic/luaotfload/filegraph.pdf
index d0640d1ad6..f1b58572af 100644
--- a/macros/luatex/generic/luaotfload/filegraph.pdf
+++ b/macros/luatex/generic/luaotfload/filegraph.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua b/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
index 5a6e90ceee..c79c31392b 100644
--- a/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-basics-gen.lua
@@ -19,6 +19,7 @@ local formatters, split, format, dump = string.formatters, string.split, string.
local loadfile, type = loadfile, type
local setmetatable, getmetatable, collectgarbage = setmetatable, getmetatable, collectgarbage
local floor = math.floor
+local mkdirp = lfs.mkdirp or lfs.mkdirs
local dummyfunction = function()
end
@@ -231,7 +232,7 @@ do
for i=1,#cachepaths do
local cachepath = cachepaths[i]
if not lfs.isdir(cachepath) then
- lfs.mkdirs(cachepath) -- needed for texlive and latex
+ mkdirp(cachepath .. '/') -- needed for texlive and latex
if lfs.isdir(cachepath) then
logs.report("system","creating cache path '%s'",cachepath)
end
diff --git a/macros/luatex/generic/luaotfload/luaotfload-arabic.lua b/macros/luatex/generic/luaotfload/luaotfload-arabic.lua
index ac599ebca7..110e0d4694 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-arabic.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-arabic.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-arabic",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / features",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
index 71abb0e1bd..ae7316f9df 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
@@ -6,7 +6,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-auxiliary",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / auxiliary functions",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-colors.lua b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
index 944d1745e4..1504cb7269 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-colors.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-colors",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / color",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
index 001729a1e2..b52716c8b5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
index d8590666af..53d0543b84 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
@@ -7,7 +7,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-configuration",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / config file reader",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-database.lua b/macros/luatex/generic/luaotfload/luaotfload-database.lua
index f1b59fcc7b..a466921d00 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-database.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-database.lua
@@ -5,7 +5,7 @@
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.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / database",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
index 83780b9929..d3a195c6cf 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
@@ -7,7 +7,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-diagnostics",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload-tool submodule / diagnostics",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
index f8d4d268f7..0200fc6ed1 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
@@ -6,7 +6,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-dvi",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / DVI",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
index caff50ed4d..30abf27ba4 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-embolden",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / embolden",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
index a527095618..3a47473699 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-fallback",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / fallback",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-features.lua b/macros/luatex/generic/luaotfload/luaotfload-features.lua
index d4d96217aa..1029809fc7 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-features.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-features.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-features",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / features",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
index 9b5f618cc2..33c8b16f82 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
@@ -6,7 +6,7 @@
if luaotfload_module then luaotfload_module {
name = "luaotfload-filelist",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / filelist",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
index f300d4955d..2a931282a3 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
@@ -1,7 +1,7 @@
if luaotfload_module then
luaotfload_module {
name = "luaotfload-glyphlist",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / autogenerated glyphlist",
copyright = "derived from https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
index 7eb795d176..3dfb74a302 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
@@ -5,7 +5,7 @@
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.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / HarfBuzz font loading",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
index 5c2d13df00..f26c872734 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
@@ -4,7 +4,7 @@
-----------------------------------------------------------------------
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-plug",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / HarfBuzz shaping",
license = "GPL v2.0",
@@ -23,8 +23,10 @@ local format = string.format
local open = io.open
local tableinsert = table.insert
local tableremove = table.remove
-local ostmpname = os.tmpname
+local ostmpdir = os.tmpdir
local osremove = os.remove
+local dir = lfs.dir
+local rmdir = lfs.rmdir
local direct = node.direct
local tonode = direct.tonode
@@ -704,13 +706,17 @@ end
-- Cache of color glyph PNG data for bookkeeping, only because I couldn't
-- figure how to make the engine load the image from the binary data directly.
+local tmpdirname
+local tmpcount = 0
local pngcache = {}
local pngcachefiles = {}
local function cachedpng(data)
local hash = md5.sumhexa(data)
local i = pngcache[hash]
if not i then
- local path = ostmpname()
+ tmpdirname = tmpdirname or ostmpdir()
+ tmpcount = tmpcount + 1
+ local path = format('%s/%i.png', tmpdirname, tmpcount)
pngcachefiles[#pngcachefiles + 1] = path
open(path, "wb"):write(data):close()
-- local file = open(path, "wb"):write():close()
@@ -1106,9 +1112,14 @@ end
local function run_cleanup()
-- Remove temporary PNG files that we created, if any.
-- FIXME: It would be nice if we wouldn't need this
- for _, path in next, pngcachefiles do
- osremove(path)
+ if not tmpdirname then return end
+ for file in dir(tmpdirname) do
+ if file ~= '.' and file ~= '..' then
+ assert(osremove(format('%s/%s', tmpdirname, file)))
+ end
end
+ assert(rmdir(tmpdirname))
+ tmpdirname = nil
end
local function set_tounicode()
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
index ad8fbdcd26..3dbf28fc1d 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
@@ -5,7 +5,7 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-cff2",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / CFF2 table processing",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
index 1d40d09ad0..78f403473c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
@@ -5,7 +5,7 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-t2-writer",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / Type 2 charstring writer",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
index a6d4d36aba..508e35a1d0 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
@@ -5,7 +5,7 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-ttf",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / gvar table processing",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-init.lua b/macros/luatex/generic/luaotfload/luaotfload-init.lua
index 13b1099752..cbfcdd7774 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-init.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-init.lua
@@ -7,7 +7,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-init",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / initialization",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
index bc1e5abae6..c53211a235 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
index b2b848bfc6..957ae8564c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-letterspace",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / letterspacing",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
index 86f48ee69a..88f791a487 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
@@ -8,7 +8,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-loaders",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / callback handling",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-log.lua b/macros/luatex/generic/luaotfload/luaotfload-log.lua
index d22c48eda5..99ac182a4b 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-log.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-log.lua
@@ -6,7 +6,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-log",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / logging",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-main.tex b/macros/luatex/generic/luaotfload/luaotfload-main.tex
index f631263dee..96415cf402 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-main.tex
+++ b/macros/luatex/generic/luaotfload/luaotfload-main.tex
@@ -32,7 +32,7 @@
\beginfrontmatter
\setdocumenttitle {The \identifier{luaotfload} package}
- \setdocumentdate {2024-02-14 v3.27}
+ \setdocumentdate {2024-02-14 v3.28}
\setdocumentauthor {LaTeX3 Project\\
Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\
Home: \hyperlink {https://github.com/latex3/luaotfload}}
@@ -62,13 +62,9 @@ Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a c
\endsection
\beginsection{Changes}
-\beginsubsection{New in version 3.27}
+\beginsubsection{New in version 3.28}
\begin{itemize}
- \item Improved support for arabic mark rendering in \texttt{node} mode.
- \item Better ordering of GSUB substitutions.
- \item Avoid dropping hyphens in DVI mode
- \item Compatibility with \identifier{luatex} 1.18
- \item Various bug fixes
+ \item Improving compatibility with Windows paths
\end{itemize}
\endsubsection
diff --git a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
index c3a611a1f8..c4b0a28f90 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-multiscript",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / multiscript",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
index f738fbdae9..7c298d9c58 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-notdef",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / notdef",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
index 27c8c449ca..edbd6aa07d 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
@@ -7,7 +7,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-parsers",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / parsers",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-realpath.lua b/macros/luatex/generic/luaotfload/luaotfload-realpath.lua
index 2738da8a1b..34f60f4d82 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-realpath.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-realpath.lua
@@ -9,18 +9,22 @@ local move = table.move
local newtable = lua.newtable
local setmetatable = setmetatable
+-- Windows should just adapt reasonable path conventions like every other operating system.
+-- But some people like to do their own thing, so we need lots of special casing here.
+local windows_style_paths = os.type ~= 'unix'
+
-- Marker key for elements of result_tree to indicate the path components entry and the file mode
local path_components, file_mode = {}, {}
local tree_root
local split_path do
local l = lpeg
- local separator = os.type == 'unix' and l.S'/' or l.S'/\\'
+ local separator = windows_style_paths and l.S'/\\' or l.S'/'
-- We do not allow empty segments here because they get ignored.
local segment = l.C((1 - separator)^1)
-- Duplicate and trailing separators are dropped.
- local unc = os.type == 'unix' and l.P(false) or separator * separator * l.Cg(l.P(1)^0 * -1, 'unc')
- local drive_letter = os.type == 'unix' and l.P(false) or l.Cg(l.R('az', 'AZ') * ':', 'drive')
+ local unc = windows_style_paths and separator * separator * l.Cg(l.P(1)^0 * -1, 'unc') or l.P(false)
+ local drive_letter = windows_style_paths and l.Cg(l.R('az', 'AZ') * ':', 'drive') or l.P(false)
local path_pat = l.Ct(unc + drive_letter^-1 * (l.Cc'' * separator^1)^-1 * (segment * separator^1)^0 * segment^-1 * -1)
function split_path(path)
local splitted = path_pat:match(path)
@@ -45,7 +49,11 @@ end
local function lookup_split_path_in_tree(components, tree)
if components[1] == '' then
- tree = tree_root
+ if windows_style_paths then
+ tree = tree_root[components.drive or tree[path_components].drive]
+ else
+ tree = tree_root
+ end
end
for i=1, #components do
local next_tree = tree[components[i]]
@@ -62,8 +70,8 @@ tree_meta = {
__index = function(parent, component)
local parent_components = parent[path_components]
local depth = #parent_components
- local components = move(parent[path_components], 1, depth, 1, newtable(depth + 1, 0))
- components[depth + 1] = component
+ local components = move(parent_components, 1, depth, 1, newtable(depth + 1, 1))
+ components.drive, components[depth + 1] = parent_components.drive, component
local path = recombine_path(components)
local mode = symlinkattributes(path, 'mode')
@@ -101,17 +109,17 @@ function build_root_dir(drive)
}, tree_meta)
root_dir['.'] = root_dir
root_dir['..'] = root_dir
- return root_dir
+ return {[''] = root_dir}
end
-tree_root = os.type == 'unix' and build_root_dir() or setmetatable({}, {__index = function(t, drive)
+tree_root = windows_style_paths and setmetatable({}, {__index = function(t, drive)
local root_dir = build_root_dir(drive)
t[drive] = root_dir
return root_dir
-end})
+end}) or build_root_dir()
local function resolve_path_to_tree(path)
local splitted = split_path(path)
- if splitted[1] == '' then -- Optimization to avoid currentdir lookup.
+ if splitted[1] == '' and (not windows_style_paths or splitted.drive) then -- Optimization to avoid currentdir lookup.
return lookup_split_path_in_tree(splitted, tree_root)
else
local splitted_currentdir = split_path(currentdir())
diff --git a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
index 93e8f61c30..2b6575f2fd 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
@@ -11,7 +11,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-resolvers",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / resolvers",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
index 75f9e3b579..cabb5b1c81 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-script",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / Script helpers",
license = "CC0 1.0 Universal",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-status.lua b/macros/luatex/generic/luaotfload/luaotfload-status.lua
index 530fc06edd..07959f2cd5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-status.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-status.lua
@@ -54,46 +54,46 @@ return {
{ "fontloader-font-ini.lua", "16b855c98602e4a3e9df39512916a427" },
{ "fontloader-data-con.lua", "b4ab51aaeab872d86d827f3e216bf05e" },
{ "fontloader-reference.lua", "23d03b682af6417aa08995f2ec10de22" },
- { "fontloader-basics-gen.lua", "4bc43036e9796fccb0b8869f4b05bf2e" },
+ { "fontloader-basics-gen.lua", "578c251c496bed783075709e94c2be26" },
{ "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
- { "mkstatus", "201011fcb01d8d804cc27b69d184b1e5" },
+ { "mkstatus", "855ec00d090bd8949a1e2d2a59ca553e" },
{ "mkcharacters", "bfca0e96e1e351afe7077502f9595af9" },
{ "mkglyphlist", "7a8a8fdc0eac7fac2f13ec8f4e8e7aa9" },
{ "mkimport", "7d62f1042e548f8b9368f26b9ba4be5c" },
- { "luaotfload-glyphlist.lua", "5b7427a864ba333f2f674b172bba2b63" },
+ { "luaotfload-glyphlist.lua", "61c0df805e753d4408972d93c1f4fef4" },
{ "luaotfload-characters.lua", "76415ca3ede312cad6e09038323489ae" },
- { "luaotfload-dvi.lua", "a88ce85492b935becf9de00d168b9fc6" },
- { "luaotfload-tounicode.lua", "834c7cb80bd7793c516187aa67a5dab8" },
- { "luaotfload-unicode.lua", "7559a279476f189206b248117d80f70d" },
- { "luaotfload-resolvers.lua", "aa07ed5021ce7bfb381ddd584910af6b" },
- { "luaotfload-parsers.lua", "eb862d8075e5e0b6130beed3f89f29be" },
- { "luaotfload-fallback.lua", "49bc7a9f026fd23e13cd1b4be30be43c" },
- { "luaotfload-szss.lua", "b174020a2eb6021e0b8838f0ad4f0fe4" },
- { "luaotfload-scripts.lua", "cf7669cbc2e1585e5e9f63b2ebef5a0f" },
- { "luaotfload-multiscript.lua", "478c8afcc416be47c861474a3b64096b" },
- { "luaotfload-loaders.lua", "178c47e50037b1455c29b10a826b8ebc" },
- { "luaotfload-harf-plug.lua", "eb202ef8123cf63e6d4820452391697f" },
- { "luaotfload-harf-define.lua", "5723873002793c7ea723c8f1abfc412d" },
- { "luaotfload-notdef.lua", "ffae44eac263adc9e7b6c5f6373637ed" },
- { "luaotfload-embolden.lua", "85ef9409937b25da3f3f4bbb0d72cebc" },
- { "luaotfload-letterspace.lua", "b608dac037f4b173833eac25d205ed91" },
- { "luaotfload-features.lua", "b43dedff88145a0626bdfcb77f8791ee" },
- { "luaotfload-database.lua", "d92cce26908694dbbb30232252e12f80" },
- { "luaotfload-configuration.lua", "84379ea613f7e55c07f17b55b9dfb67b" },
- { "luaotfload-colors.lua", "89386fcb44e2887b1be60b8acbe251b3" },
- { "luaotfload-auxiliary.lua", "a43134987a5cf7fc22bfd240745440fe" },
- { "luaotfload-filelist.lua", "e40105831b58e5f0fa4908a7a131da1f" },
- { "luaotfload-tool.lua", "89fc6f4c6e2630305a91dd6a29c1449d" },
- { "luaotfload-diagnostics.lua", "7e07c0b2d9470c016d72d36900904792" },
- { "luaotfload-log.lua", "e008c6135446dff77813079ce11a10e8" },
- { "luaotfload-init.lua", "9f354ea115993d9a9238d5f74c7d7e63" },
+ { "luaotfload-dvi.lua", "8d3f9adeaf8896eb94baf4f4a7cb72a4" },
+ { "luaotfload-tounicode.lua", "245271ce518c136c96f22fee6cb810ab" },
+ { "luaotfload-unicode.lua", "cebc6454abe34f2fe1c1248f8b2453da" },
+ { "luaotfload-resolvers.lua", "0f87b7c297120189ddbd31f6ee324a9f" },
+ { "luaotfload-parsers.lua", "73f67f95af947fe741c931e6f60b84cb" },
+ { "luaotfload-fallback.lua", "3b1569703b22fabe9661f2188fa0dbd3" },
+ { "luaotfload-szss.lua", "bdf184e24947478dc89307adf866a3ca" },
+ { "luaotfload-scripts.lua", "2026f40b86c3e93eba401524424e71d9" },
+ { "luaotfload-multiscript.lua", "1415dc53c2ad56f6dc892212090d7c03" },
+ { "luaotfload-loaders.lua", "80907f5cf87e2d5f946936a1ef08b6a8" },
+ { "luaotfload-harf-plug.lua", "201bbdd109fa1f0b02068e59f2f5384d" },
+ { "luaotfload-harf-define.lua", "f1319af7f3837fbda6db470b77627c71" },
+ { "luaotfload-notdef.lua", "920854a37e695604457cb1fcad35a814" },
+ { "luaotfload-embolden.lua", "6b15c8ae9e49cfb4a5e319aadf1ef3ac" },
+ { "luaotfload-letterspace.lua", "45fe7d691be75f6ef7f0c058c40113d9" },
+ { "luaotfload-features.lua", "756bc857a0d63bf1a6abbd1406e85844" },
+ { "luaotfload-database.lua", "0e2f26fead21ffdb36f36a5090220f8d" },
+ { "luaotfload-configuration.lua", "0abab568ba9c0082c9ad3e1b75897d49" },
+ { "luaotfload-colors.lua", "cda35651d19ec5ae24d18f3b0e1cfeec" },
+ { "luaotfload-auxiliary.lua", "6dbe1a2a3f36cf57845e54c1927ccfee" },
+ { "luaotfload-filelist.lua", "bd805bc5b92346005cde05679a4db421" },
+ { "luaotfload-tool.lua", "244ec7b1febf40d9e153e7aab7ad7237" },
+ { "luaotfload-diagnostics.lua", "8a51337bd7dcaf772ced0c16d13654cc" },
+ { "luaotfload-log.lua", "b0cd5d77653fae19eceb1c1f195d9b77" },
+ { "luaotfload-init.lua", "5808f9c69b6a266fef8b923aefaecdc3" },
{ "luaotfload-main.lua", "b19c9cc34cf1d676c39f872cfb41aef6" },
},
["notes"]={
["committer"]="Marcel Fabian Krüger <tex@2krueger.de>",
- ["description"]="v3.27/2024-02-14",
+ ["description"]="v3.28/2024-02-14",
["loader"]="fontloader-2023-12-28.lua",
- ["revision"]="17a160cd9eacf04cb179e7405f2d616824314868",
- ["timestamp"]="2024-02-14 22:31:40 +0100",
+ ["revision"]="73dac18445938c6c54118045944817c4e8c59a1c",
+ ["timestamp"]="2024-02-28 06:18:10 +0100",
},
} \ No newline at end of file
diff --git a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
index 1df46db80b..9735dbf679 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-suppress",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / suppress",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-szss.lua b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
index c01d271d59..9c88f6f1e5 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-szss.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-szss",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / Special feature handling",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.1 b/macros/luatex/generic/luaotfload/luaotfload-tool.1
index 1334d48da9..f1b902ae62 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.1
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.1
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD-TOOL 1 "2024-02-14" "3.27" "text processing"
-.SH NAME
-luaotfload-tool \- generate and query the Luaotfload font names database
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
+.TH "LUAOTFLOAD-TOOL" 1 "2024-02-14" "3.28" "text processing"
+.SH NAME
+luaotfload-tool \- generate and query the Luaotfload font names database
.SH SYNOPSIS
.sp
\fBluaotfload\-tool\fP [ \-bcDfFiIlLnpqRSuvVhw ]
@@ -77,14 +77,14 @@ the \fILuaotfload\fP package. There are two general modes: \fBupdate\fP and
.SS update mode
.INDENT 0.0
.TP
-.B \-\-update\fP,\fB \-u
+.B \-\-update\fP,\fB \-u
Update the database; indexes new fonts.
.TP
-.B \-\-force\fP,\fB \-f
+.B \-\-force\fP,\fB \-f
Force rebuilding of the database; re\-indexes
all fonts.
.TP
-.B \-\-local\fP,\fB \-L
+.B \-\-local\fP,\fB \-L
Include font files in \fB$PWD\fP\&. This option
will cause large parts of the database to be
rebuilt. Thus it is quite inefficient.
@@ -93,16 +93,16 @@ the database is prevented from being saved
to disk, so the local fonts need to be parsed
with every invocation of \fBluaotfload\-tool\fP\&.
.TP
-.B \-\-no\-reload\fP,\fB \-n
+.B \-\-no\-reload\fP,\fB \-n
Suppress auto\-updates to the database (e.g.
when \fB\-\-find\fP is passed an unknown name).
.TP
-.B \-\-no\-compress\fP,\fB \-c
+.B \-\-no\-compress\fP,\fB \-c
Do not filter the plain text version of the
font index through gzip. Useful for debugging
if your editor is built without zlib.
.TP
-.B \-\-prefer\-texmf\fP,\fB \-p
+.B \-\-prefer\-texmf\fP,\fB \-p
Organize the file name database in a way so
that it prefer fonts in the \fITEXMF\fP tree over
system fonts if they are installed in both.
@@ -139,16 +139,16 @@ mapped to.
i.e. \fB\-\-find=file:foo.otf\fP checks whether
\fBfoo.otf\fP is indexed.
.TP
-.B \-\-fuzzy\fP,\fB \-F
+.B \-\-fuzzy\fP,\fB \-F
Show approximate matches to the file name if
the lookup was unsuccessful (requires
\fB\-\-find\fP).
.TP
-.B \-\-info\fP,\fB \-i
+.B \-\-info\fP,\fB \-i
Display basic information to a resolved font
file (requires \fB\-\-find\fP).
.TP
-.B \-\-inspect\fP,\fB \-I
+.B \-\-inspect\fP,\fB \-I
Display detailed information by loading the
font and analyzing the font table; very slow!
For the meaning of the returned fields see
@@ -230,7 +230,7 @@ The default is plainname,version*.
.SS font and lookup caches
.INDENT 0.0
.TP
-.B \-\-flush\-lookups
+.B \-\-flush\-lookups
Clear font name lookup cache (experimental).
.TP
.BI \-\-cache\fB= DIRECTIVE
@@ -249,15 +249,15 @@ cache;
.SS debugging methods
.INDENT 0.0
.TP
-.B \-\-show\-blacklist\fP,\fB \-b
+.B \-\-show\-blacklist\fP,\fB \-b
Show blacklisted files (not directories).
.TP
-.B \-\-dry\-run\fP,\fB \-D
+.B \-\-dry\-run\fP,\fB \-D
Don’t load fonts when updating the database;
scan directories only.
(For debugging file system related issues.)
.TP
-.B \-\-no\-strip
+.B \-\-no\-strip
Do not strip redundant information after
building the database. Warning: this will
inflate the index to about two to three times
@@ -331,7 +331,7 @@ state.
Set verbosity level to \fIn\fP or the number of
repetitions of \fB\-v\fP\&.
.TP
-.B \-\-quiet
+.B \-\-quiet
No verbose output (log level set to zero).
.TP
.BI \-\-log\fB= CHANNEL
@@ -347,11 +347,11 @@ directory (the name will be chosen
automatically.
.UNINDENT
.TP
-.B \-\-version\fP,\fB \-V
+.B \-\-version\fP,\fB \-V
Show version numbers of components as well as
some basic information and exit.
.TP
-.B \-\-help\fP,\fB \-h
+.B \-\-help\fP,\fB \-h
Show help message and exit.
.TP
.BI \-\-diagnose\fB= CHECK
@@ -387,12 +387,12 @@ Read the configuration from \fIFILE\fP\&. See
\fBluaotfload.conf\fP(%) for documentation
concerning the format and available options.
.TP
-.B \-\-dumpconf
+.B \-\-dumpconf
Print the currently active configuration; the
output can be saved to a file and used for
bootstrapping a custom configuration files.
.TP
-.B \-\-aliases
+.B \-\-aliases
Dump the font name database as a kpathsea
aliases file. This option is experimental and
might go away.
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.lua b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
index 45517448e7..fb676f7d59 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
@@ -9,7 +9,7 @@
local ProvidesLuaModule = {
name = "luaotfload-tool",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload-tool / database functionality",
license = "GPL v2.0"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
index b87a1914e0..27abd95740 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.rst b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
index 778bbf5f1b..acbbaf2704 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
@@ -8,7 +8,7 @@
:Date: 2024-02-14
:Copyright: GPL v2.0
-:Version: 3.27
+:Version: 3.28
:Manual section: 1
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
index c0d7046689..da89ee9769 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-tounicode",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / tounicode",
license = "GPL v2.0",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
index b83ac25461..afeb4293fe 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
@@ -5,7 +5,7 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-unicode",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "luaotfload submodule / Unicode helpers",
license = "CC0 1.0 Universal",
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.5 b/macros/luatex/generic/luaotfload/luaotfload.conf.5
index 3ebd68b72a..27473f7d1e 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.5
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.5
@@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText.
.
-.TH LUAOTFLOAD.CONF 5 "2024-02-14" "3.27" "text processing"
-.SH NAME
-luaotfload.conf \- Luaotfload configuration file
.
.nr rst2man-indent-level 0
.
@@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
+.TH "LUAOTFLOAD.CONF" 5 "2024-02-14" "3.28" "text processing"
+.SH NAME
+luaotfload.conf \- Luaotfload configuration file
.SH SYNOPSIS
.INDENT 0.0
.IP \(bu 2
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.rst b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
index f9e48cb7a2..4aef3b1595 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
@@ -8,7 +8,7 @@
:Date: 2024-02-14
:Copyright: GPL v2.0
-:Version: 3.27
+:Version: 3.28
:Manual section: 5
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload.lua b/macros/luatex/generic/luaotfload/luaotfload.lua
index 893309f9db..97c6d2ed75 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload.lua
@@ -20,7 +20,7 @@ local authors = "\z
-- version number is used below!
local ProvidesLuaModule = {
name = "luaotfload",
- version = "3.27", --TAGVERSION
+ version = "3.28", --TAGVERSION
date = "2024-02-14", --TAGDATE
description = "Lua based OpenType font support",
author = authors,
diff --git a/macros/luatex/generic/luaotfload/luaotfload.sty b/macros/luatex/generic/luaotfload/luaotfload.sty
index 262834e95c..de64836531 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.sty
+++ b/macros/luatex/generic/luaotfload/luaotfload.sty
@@ -39,7 +39,7 @@
\fi
\ifdefined\ProvidesPackage
\ProvidesPackage{luaotfload}%
- [2024/02/14 v3.27 OpenType layout system]
+ [2024/02/14 v3.28 OpenType layout system]
\fi
\directlua{
if xpcall(function ()%
diff --git a/macros/luatex/generic/luaotfload/scripts-demo.pdf b/macros/luatex/generic/luaotfload/scripts-demo.pdf
index 0049165b55..267ae6373f 100644
--- a/macros/luatex/generic/luaotfload/scripts-demo.pdf
+++ b/macros/luatex/generic/luaotfload/scripts-demo.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
index d46132c76e..cd6bc398ca 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo.pdf b/macros/luatex/generic/luaotfload/shaper-demo.pdf
index 3ad7f54fa1..444a29224d 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo.pdf
Binary files differ