diff options
Diffstat (limited to 'tex/context/base/mult-ini.lua')
-rw-r--r-- | tex/context/base/mult-ini.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tex/context/base/mult-ini.lua b/tex/context/base/mult-ini.lua index 5571ee3b9..3b18738de 100644 --- a/tex/context/base/mult-ini.lua +++ b/tex/context/base/mult-ini.lua @@ -307,3 +307,27 @@ function commands.showassignerror(namespace,key,value,line) context.writestatus("setup",formatters["error in line %a, namespace %a, key %a"](line,namespace,key)) end end + +-- a simple helper + +local settings_to_hash = utilities.parsers.settings_to_hash + +local makesparse = function(t) + for k, v in next, t do + if not v or v == "" then + t[k] = nil + end + end + return t +end + +function interfaces.checkedspecification(specification) + local kind = type(specification) + if kind == "table" then + return makesparse(specification) + elseif kind == "string" and specification ~= "" then + return makesparse(settings_to_hash(specification)) + else + return { } + end +end |