/usr/share/texlive/texmf-dist/tex/luatex/luatexbase/modutils.lua is in texlive-luatex 2012.20120611-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | --
-- This is file `modutils.lua',
-- generated with the docstrip utility.
--
-- The original source files were:
--
-- luatexbase-modutils.dtx (with options: `luamodule')
--
-- Written in 2009, 2010 by Manuel Pegourie-Gonnard and Elie Roux.
--
-- This work is under the CC0 license.
-- See source file 'luatexbase-modutils.dtx' for details.
--
module("luatexbase", package.seeall)
local modules = modules or {}
local function date_to_int(date)
numbers = string.gsub(date, "(%d+)/(%d+)/(%d+)", "%1%2%3")
return tonumber(numbers)
end
local function msg_format(msg_type, mod_name, ...)
local cont = '('..mod_name..')' .. ('Module: '..msg_type):gsub('.', ' ')
return 'Module '..mod_name..' '..msg_type..': '
.. string.format(...):gsub('\n', '\n'..cont) .. '\n'
end
local function module_error_int(mod, ...)
error(msg_format('error', mod, ...), 3)
end
function module_error(mod, ...)
module_error_int(mod, ...)
end
function module_warning(mod, ...)
for _, line in ipairs(msg_format('warning', mod, ...):explode('\n')) do
texio.write_nl(line)
end
end
function module_info(mod, ...)
for _, line in ipairs(msg_format('info', mod, ...):explode('\n')) do
texio.write_nl(line)
end
end
function module_log(mod, msg, ...)
texio.write_nl('log', mod..': '..msg:format(...))
end
function errwarinf(name)
return function(...) module_error_int(name, ...) end,
function(...) module_warning(name, ...) end,
function(...) module_info(name, ...) end,
function(...) module_log(name, ...) end
end
local err, warn = errwarinf('luatexbase.modutils')
function require_module(name, req_date)
require(name)
local info = modules[name]
if not info then
warn("module '%s' was not properly identified", name)
elseif version then
if not (info.date and date_to_int(info.date) > date_to_int(req_date))
then
warn("module '%s' required in version '%s'\n"
.. "but found in version '%s'", name, req_date, info.date)
end
end
end
function provides_module(info)
if not (info and info.name) then
err('provides_module: missing information')
end
texio.write_nl('log', string.format("Lua module: %s %s %s %s\n",
info.name, info.date or '', info.version or '', info.description or ''))
modules[info.name] = info
return errwarinf(info.name)
end
--
-- End of File `modutils.lua'.
|