From db2e9e6df994386a71d9cca126b55e2676eedfc3 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 3 May 2016 00:09:40 +0200 Subject: [main,tool] reintroduce lost version check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The version check was removed by accident in commit 5ce60cc98a30. This isn’t normally a problem except when people start to run the Pretest version on ancient Luatex binaries … In any case, the check must be present. While we’re at it, make the error messages consistent between the tool and a live TeX run. This can’t cover the fact that there is no (direct) means of determining the Luatex version when not running in TeX mode, so the checks still aren’t equivalent. --- src/luaotfload-main.lua | 23 ++++++++++++++++++++++- src/luaotfload-tool.lua | 30 ++++++++++++------------------ 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/luaotfload-main.lua b/src/luaotfload-main.lua index 9e8d088..25be3db 100644 --- a/src/luaotfload-main.lua +++ b/src/luaotfload-main.lua @@ -13,9 +13,30 @@ local luaotfload = luaotfload luaotfload.log = luaotfload.log or { } luaotfload.version = "2.7" luaotfload.loaders = { } -luaotfload.min_luatex_version = 95 --- i. e. 0.95 +luaotfload.min_luatex_version = { 0, 95, 0 } --- i. e. 0.95.0 luaotfload.fontloader_package = "reference" --- default: from current Context +if not tex or not tex.luatexversion then + error "this program must be run in TeX mode" --- or call tex.initialize() =) +else + --- version check + local major = tex.luatexversion / 100 + local minor = tex.luatexversion % 100 + local revision = tex.luatexrevision --[[ : string ]] + local revno = tonumber (revision) + local minimum = luaotfload.min_luatex_version + if major < minimum [1] or minor < minimum [2] + or revno and revno < minimum [3] + then + texio.write_nl ("term and log", + string.format ("\tFATAL ERROR\n\z + \tLuaotfload requires a Luatex version >= %d.%d.%d.\n\z + \tPlease update your TeX distribution!\n\n", + (unpack or table.unpack) (minimum))) + error "version check failed" + end +end + local authors = "\z Hans Hagen,\z Khaled Hosny,\z diff --git a/src/luaotfload-tool.lua b/src/luaotfload-tool.lua index 376aa39..9ffdbe6 100755 --- a/src/luaotfload-tool.lua +++ b/src/luaotfload-tool.lua @@ -7,10 +7,11 @@ -- LICENSE: GPL v2.0 ----------------------------------------------------------------------- -luaotfload = luaotfload or { } -local version = "2.7" -luaotfload.version = version -luaotfload.self = "luaotfload-tool" +luaotfload = luaotfload or { } +local version = "2.7" +luaotfload.version = version +luaotfload.min_luatex_version = { 0, 95, 0 } --- i. e. 0.95.0 +luaotfload.self = "luaotfload-tool" --[[doc-- @@ -33,16 +34,6 @@ see the luaotfload documentation for more info. Report bugs to kpse.set_program_name "luatex" ---[[doc-- - - We test for Lua 5.1 by means of capability detection to see if - we’re running an outdated Luatex. If so, we bail. - - \url{http://lua-users.org/wiki/LuaVersionCompatibility} - ---doc]]-- - - local iowrite = io.write local kpsefind_file = kpse.find_file local mathfloor = math.floor @@ -64,11 +55,14 @@ if _G.getfenv ~= nil then -- 5.1 or LJ if _G.jit ~= nil then runtime = { "jit", jit.version } else + local minimum = luaotfload.min_luatex_version runtime = { "stock", _VERSION } - print "FATAL ERROR" - print "Luaotfload requires a Luatex version >=0.76." - print "Please update your TeX distribution!" - os.exit (-1) + texio.write_nl ("term and log", + string.format ("\tFATAL ERROR\n\z + \tLuaotfload requires a Luatex version >= %d.%d.%d.\n\z + \tPlease update your TeX distribution!\n\n", + (unpack or table.unpack) (minimum))) + error "version check failed" end else -- 5.2 runtime = { "stock", _VERSION } -- cgit v1.2.3