diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mult-ini.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mult-ini.lua | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/Master/texmf-dist/tex/context/base/mult-ini.lua b/Master/texmf-dist/tex/context/base/mult-ini.lua index 62e983abca7..bd3b1d38b37 100644 --- a/Master/texmf-dist/tex/context/base/mult-ini.lua +++ b/Master/texmf-dist/tex/context/base/mult-ini.lua @@ -12,6 +12,7 @@ local serialize = table.serialize local context = context local commands = commands +local implement = interfaces.implement local allocate = utilities.storage.allocate local mark = utilities.storage.mark @@ -240,9 +241,17 @@ function interfaces.setuserinterface(interface,response) end report_interface("definitions: %a constants, %a variables, %a elements, %a commands, %a formats, %a translations", nofconstants,nofvariables,nofelements,nofcommands,nofformats,noftranslations) + else + report_interface("the language(s) can only be set when making the format") end end +interfaces.implement { + name = "setuserinterface", + actions = interfaces.setuserinterface, + arguments = { "string", "string" } +} + interfaces.cachedsetups = interfaces.cachedsetups or { } interfaces.hashedsetups = interfaces.hashedsetups or { } @@ -282,34 +291,43 @@ end -- interface -function commands.writestatus(category,message,...) - local r = reporters[category] - if r then - r(message,...) - end +function interfaces.writestatus(category,message) + reporters[category](message) -- could also be a setmetatablecall end -commands.registernamespace = interfaces.registernamespace -commands.setinterfaceconstant = interfaces.setconstant -commands.setinterfacevariable = interfaces.setvariable -commands.setinterfaceelement = interfaces.setelement -commands.setinterfacemessage = interfaces.setmessage -commands.setinterfacemessages = interfaces.setmessages -commands.showmessage = interfaces.showmessage +implement { name = "registernamespace", actions = interfaces.registernamespace, arguments = { "integer", "string" } } +implement { name = "setinterfaceconstant", actions = interfaces.setconstant, arguments = { "string", "string" } } +implement { name = "setinterfacevariable", actions = interfaces.setvariable, arguments = { "string", "string" } } +implement { name = "setinterfaceelement", actions = interfaces.setelement, arguments = { "string", "string" } } +implement { name = "setinterfacemessage", actions = interfaces.setmessage, arguments = { "string", "string", "string" } } +implement { name = "setinterfacemessages", actions = interfaces.setmessages, arguments = { "string", "string" } } +implement { name = "showmessage", actions = interfaces.showmessage, arguments = { "string", "string", "string" } } + +implement { + name = "doifelsemessage", + actions = { interfaces.doifelsemessage, commands.doifelse }, + arguments = { "string", "string" }, +} -function commands.doifelsemessage(category,tag) - commands.doifelse(interfaces.doifelsemessage(category,tag)) -end +implement { + name = "getmessage", + actions = { interfaces.getmessage, context }, + arguments = { "string", "string", "string" }, +} -function commands.getmessage(category,tag,default) - context(interfaces.getmessage(category,tag,default)) -end +implement { + name = "writestatus", + overload = true, + actions = interfaces.writestatus, + arguments = { "string", "string" }, +} -function commands.showassignerror(namespace,key,line) +local function showassignerror(namespace,key,line) local ns, instance = match(namespace,"^(%d+)[^%a]+(%a*)") if ns then namespace = corenamespaces[tonumber(ns)] or ns end + -- injected in the stream for timing: if instance and instance ~= "" then context.writestatus("setup",formatters["error in line %a, namespace %a, instance %a, key %a"](line,namespace,instance,key)) else @@ -317,6 +335,12 @@ function commands.showassignerror(namespace,key,line) end end +implement { + name = "showassignerror", + actions = showassignerror, + arguments = { "string", "string", "integer" }, +} + -- a simple helper local settings_to_hash = utilities.parsers.settings_to_hash |