summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/lang-ini.lua
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-06-23 23:38:05 +0000
committerKarl Berry <karl@freefriends.org>2013-06-23 23:38:05 +0000
commit60f28f85f2707b6a48c3b5aec0ea68b8ee21e466 (patch)
treeab34d8d573457bea6a804ee3d5de48dd500bf028 /Master/texmf-dist/tex/context/base/lang-ini.lua
parentac5882d0cb115e11b5cc2e62107ef5822f3507f5 (diff)
context
git-svn-id: svn://tug.org/texlive/trunk@30865 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/lang-ini.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/lang-ini.lua39
1 files changed, 32 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/context/base/lang-ini.lua b/Master/texmf-dist/tex/context/base/lang-ini.lua
index 4ae7656d354..64221325338 100644
--- a/Master/texmf-dist/tex/context/base/lang-ini.lua
+++ b/Master/texmf-dist/tex/context/base/lang-ini.lua
@@ -91,6 +91,23 @@ end
-- patterns=en
-- patterns=en,de
+local function validdata(dataset,what,tag)
+ if dataset then
+ local data = dataset.data
+ if not data or data == "" then
+ return nil
+ elseif dataset.compression == "zlib" then
+ data = zlib.decompress(data)
+ if dataset.length and dataset.length ~= #data then
+ report_initialization("compression error in %a for language %a","patterns",what,tag)
+ end
+ return data
+ else
+ return data
+ end
+ end
+end
+
local function loaddefinitions(tag,specification)
statistics.starttiming(languages)
local data, instance = resolve(tag)
@@ -113,15 +130,21 @@ local function loaddefinitions(tag,specification)
dataused[definition] = definition
local filename = "lang-" .. definition .. ".lua"
local fullname = resolvers.findfile(filename) or ""
+ if fullname == "" then
+ fullname = resolvers.findfile(filename .. ".gz") or ""
+ end
if fullname ~= "" then
if trace_patterns then
report_initialization("loading definition %a for language %a from %a",definition,tag,fullname)
end
- local defs = dofile(fullname) -- use regular loader instead
+ local suffix, gzipped = gzip.suffix(fullname)
+ local defs = table.load(fullname,gzipped and gzip.load)
if defs then -- todo: version test
ok, nofloaded = true, nofloaded + 1
- instance:patterns (defs.patterns and defs.patterns .data or "")
- instance:hyphenation(defs.exceptions and defs.exceptions.data or "")
+ -- instance:patterns (defs.patterns and defs.patterns .data or "")
+ -- instance:hyphenation(defs.exceptions and defs.exceptions.data or "")
+ instance:patterns (validdata(defs.patterns, "patterns", tag) or "")
+ instance:hyphenation(validdata(defs.exceptions,"exceptions",tag) or "")
else
report_initialization("invalid definition %a for language %a in %a",definition,tag,filename)
end
@@ -329,13 +352,15 @@ languages.associate('fr','latn','fra')
statistics.register("loaded patterns", function()
local result = languages.logger.report()
if result ~= "none" then
- return result
+-- return result
+ return format("%s, load time: %s",result,statistics.elapsedtime(languages))
end
end)
-statistics.register("language load time", function()
- return statistics.elapsedseconds(languages, format(", nofpatterns: %s",nofloaded))
-end)
+-- statistics.register("language load time", function()
+-- -- often zero so we can merge that in the above
+-- return statistics.elapsedseconds(languages, format(", nofpatterns: %s",nofloaded))
+-- end)
-- interface