diff options
author | Norbert Preining <norbert@preining.info> | 2024-02-29 03:02:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-02-29 03:02:00 +0000 |
commit | cd2d035c39e23ef720cdd58ad3e377f7c60e9858 (patch) | |
tree | ca7f11c779775df04a7709bdd75d46d53b380f2e /macros/luatex/generic/luaotfload | |
parent | 0afdc3e8c2d8e96d0cd0a5f05f1481a4eecc51d2 (diff) |
CTAN sync 202402290301
Diffstat (limited to 'macros/luatex/generic/luaotfload')
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 Binary files differindex d0640d1ad6..f1b58572af 100644 --- a/macros/luatex/generic/luaotfload/filegraph.pdf +++ b/macros/luatex/generic/luaotfload/filegraph.pdf 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 Binary files differindex 001729a1e2..b52716c8b5 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf 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 Binary files differindex bc1e5abae6..c53211a235 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf 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 Binary files differindex b87a1914e0..27abd95740 100644 --- a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf +++ b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf 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 Binary files differindex 0049165b55..267ae6373f 100644 --- a/macros/luatex/generic/luaotfload/scripts-demo.pdf +++ b/macros/luatex/generic/luaotfload/scripts-demo.pdf diff --git a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf Binary files differindex d46132c76e..cd6bc398ca 100644 --- a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf +++ b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf diff --git a/macros/luatex/generic/luaotfload/shaper-demo.pdf b/macros/luatex/generic/luaotfload/shaper-demo.pdf Binary files differindex 3ad7f54fa1..444a29224d 100644 --- a/macros/luatex/generic/luaotfload/shaper-demo.pdf +++ b/macros/luatex/generic/luaotfload/shaper-demo.pdf |