summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/context/lua/mtx-fonts.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/scripts/context/lua/mtx-fonts.lua
parentac5882d0cb115e11b5cc2e62107ef5822f3507f5 (diff)
context
git-svn-id: svn://tug.org/texlive/trunk@30865 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/context/lua/mtx-fonts.lua')
-rw-r--r--Master/texmf-dist/scripts/context/lua/mtx-fonts.lua42
1 files changed, 34 insertions, 8 deletions
diff --git a/Master/texmf-dist/scripts/context/lua/mtx-fonts.lua b/Master/texmf-dist/scripts/context/lua/mtx-fonts.lua
index d427f8b2fc3..b171dd611f4 100644
--- a/Master/texmf-dist/scripts/context/lua/mtx-fonts.lua
+++ b/Master/texmf-dist/scripts/context/lua/mtx-fonts.lua
@@ -22,7 +22,7 @@ local helpinfo = [[
<category name="basic">
<subcategory>
<flag name="save"><short>save open type font in raw table</short></flag>
- <flag name="unpack"><short>save a tma file in a more readale format</short></flag>
+ <flag name="unpack"><short>save a tma file in a more readable format</short></flag>
</subcategory>
<subcategory>
<flag name="reload"><short>generate new font database (use <ref name="force"/> when in doubt)</short></flag>
@@ -85,6 +85,7 @@ local report = application.report
if not fontloader then fontloader = fontforge end
dofile(resolvers.findfile("font-otp.lua","tex")) -- we need to unpack the font for analysis
+dofile(resolvers.findfile("font-trt.lua","tex"))
dofile(resolvers.findfile("font-syn.lua","tex"))
dofile(resolvers.findfile("font-mis.lua","tex"))
@@ -135,6 +136,7 @@ function fonts.names.simple()
local simpleversion = 1.001
local simplelist = { "ttf", "otf", "ttc", "dfont" }
local name = "luatex-fonts-names.lua"
+ local path = file.collapsepath(caches.getwritablepath("..","..","generic","fonts","data"))
fonts.names.filters.list = simplelist
fonts.names.version = simpleversion -- this number is the same as in font-dum.lua
report("generating font database for 'luatex-fonts' version %s",fonts.names.version)
@@ -143,8 +145,9 @@ function fonts.names.simple()
if data then
local simplemappings = { }
local simplified = {
- mappings = simplemappings,
- version = simpleversion,
+ mappings = simplemappings,
+ version = simpleversion,
+ cache_version = simpleversion,
}
local specifications = data.specifications
for i=1,#simplelist do
@@ -154,7 +157,18 @@ function fonts.names.simple()
simplemappings[tag] = { s.rawname, s.filename, s.subfont }
end
end
- report("saving names in '%s'",name)
+ if environment.arguments.nocache then
+ report("not using cache path %a",path)
+ else
+ dir.mkdirs(path)
+ if lfs.isdir(path) then
+ report("saving names on cache path %a",path)
+ name = file.join(path,name)
+ else
+ report("invalid cache path %a",path)
+ end
+ end
+ report("saving names in %a",name)
io.savedata(name,table.serialize(simplified,true))
local data = io.loaddata(resolvers.findfile("luatex-fonts-syn.lua","tex")) or ""
local dummy = string.match(data,"fonts%.names%.version%s*=%s*([%d%.]+)")
@@ -365,10 +379,21 @@ function scripts.fonts.list()
end
+function scripts.fonts.justload()
+ local fullname = environment.files[1]
+ if fullname then
+ local result = fontloader.open(fullname)
+ if type(result) == "table" then
+ report("loading %s: %s","succeeded",fullname)
+ end
+ end
+ report("loading %s: %s","failed",fullname)
+end
+
function scripts.fonts.unpack()
local name = file.removesuffix(file.basename(givenfiles[1] or ""))
if name and name ~= "" then
- local cache = containers.define("fonts", "otf", 2.730, true)
+ local cache = containers.define("fonts", "otf", 2.742, true)
local cleanname = containers.cleanname(name)
local data = containers.read(cache,cleanname)
if data then
@@ -377,7 +402,7 @@ function scripts.fonts.unpack()
fonts.handlers.otf.enhancers.unpack(data)
io.savedata(savename,table.serialize(data,true))
else
- report("unknown file '%s'",name)
+ report("unknown file %a",name)
end
end
end
@@ -387,9 +412,8 @@ function scripts.fonts.save()
local sub = givenfiles[2] or ""
local function save(savename,fontblob)
if fontblob then
- savename = savename:lower() .. ".lua"
+ savename = file.addsuffix(string.lower(savename),"lua")
report("fontsave, saving data in %s",savename)
--- fontloader.apply_featurefile(fontblob, "./ts/test.fea")
table.tofile(savename,fontloader.to_table(fontblob),"return")
fontloader.close(fontblob)
end
@@ -435,6 +459,8 @@ elseif getargument("reload") then
scripts.fonts.reload()
elseif getargument("save") then
scripts.fonts.save()
+elseif getargument("justload") then
+ scripts.fonts.justload()
elseif getargument("unpack") then
scripts.fonts.unpack()
elseif getargument("statistics") then