diff options
author | Hans Hagen <pragma@wxs.nl> | 2010-08-19 01:08:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2010-08-19 01:08:00 +0200 |
commit | 174663b0081dd76f91c45fd705262a262a7b1f49 (patch) | |
tree | 554d5d47e81a9263e98fe7091be7e4dbd363482b /tex/context/base/font-gds.lua | |
parent | e68c228a21a98042c87ef21d9a094b97f941e8de (diff) | |
download | context-174663b0081dd76f91c45fd705262a262a7b1f49.tar.gz |
beta 2010.08.19 01:08
Diffstat (limited to 'tex/context/base/font-gds.lua')
-rw-r--r-- | tex/context/base/font-gds.lua | 67 |
1 files changed, 37 insertions, 30 deletions
diff --git a/tex/context/base/font-gds.lua b/tex/context/base/font-gds.lua index 79a1417d3..f25458110 100644 --- a/tex/context/base/font-gds.lua +++ b/tex/context/base/font-gds.lua @@ -17,16 +17,19 @@ local report_fonts = logs.new("fonts") -- -- goodies=auto --- goodies +local fonts, nodes, attributes = fonts, nodes, attributes +local node = node -fonts.goodies = fonts.goodies or { } -fonts.goodies.data = fonts.goodies.data or { } -fonts.goodies.list = fonts.goodies.list or { } +fonts.goodies = fonts.goodies or { } +local fontgoodies = fonts.goodies -local data = fonts.goodies.data -local list = fonts.goodies.list +fontgoodies.data = fontgoodies.data or { } +local data = fontgoodies.data -function fonts.goodies.report(what,trace,goodies) +fontgoodies.list = fontgoodies.list or { } +local list = fontgoodies.list + +function fontgoodies.report(what,trace,goodies) if trace_goodies or trace then local whatever = goodies[what] if whatever then @@ -66,17 +69,17 @@ local function getgoodies(filename) -- maybe a merge is better return goodies end -function fonts.goodies.register(name,fnc) +function fontgoodies.register(name,fnc) list[name] = fnc end -fonts.goodies.get = getgoodies +fontgoodies.get = getgoodies -- register goodies file local preset_context = fonts.define.specify.preset_context -function fonts.initializers.common.goodies(tfmdata,value) +local function set_goodies(tfmdata,value) local goodies = tfmdata.goodies or { } -- future versions might store goodies in the cached instance for filename in gmatch(value,"[^, ]+") do -- we need to check for duplicates @@ -88,6 +91,8 @@ function fonts.initializers.common.goodies(tfmdata,value) tfmdata.goodies = goodies -- shared ? end +-- this will be split into good-* files and this file might become good-ini.lua + -- featuresets local function flattened_features(t,tt) @@ -115,7 +120,7 @@ end fonts.flattened_features = flattened_features -function fonts.goodies.prepare_features(goodies,name,set) +function fontgoodies.prepare_features(goodies,name,set) if set then local ff = flattened_features(set) local fullname = goodies.name .. "::" .. name @@ -136,14 +141,14 @@ local function initialize(goodies,tfmdata) report_fonts("checking featuresets in '%s'",goodies.name) end for name, set in next, featuresets do - fonts.goodies.prepare_features(goodies,name,set) + fontgoodies.prepare_features(goodies,name,set) end end end -fonts.goodies.register("featureset",initialize) +fontgoodies.register("featureset",initialize) -function fonts.initializers.common.featureset(tfmdata,set) +local function set_featureset(tfmdata,set) local goodies = tfmdata.goodies -- shared ? if goodies then local features = tfmdata.shared.features @@ -166,12 +171,11 @@ end -- colorschemes -fonts.goodies.colorschemes = fonts.goodies.colorschemes or { } -fonts.goodies.colorschemes.data = fonts.goodies.colorschemes.data or { } +fontgoodies.colorschemes = fontgoodies.colorschemes or { } +local colorschemes = fontgoodies.colorschemes +colorschemes.data = colorschemes.data or { } -local colorschemes = fonts.goodies.colorschemes - -function fonts.initializers.common.colorscheme(tfmdata,scheme) +local function set_colorscheme(tfmdata,scheme) if type(scheme) == "string" then local goodies = tfmdata.goodies -- todo : check for already defined in shared @@ -211,7 +215,7 @@ local traverse_id = node.traverse_id local a_colorscheme = attributes.private('colorscheme') local glyph = node.id("glyph") -function fonts.goodies.colorschemes.coloring(head) +function colorschemes.coloring(head) local lastfont, lastscheme local done = false for n in traverse_id(glyph,head) do @@ -233,9 +237,9 @@ function fonts.goodies.colorschemes.coloring(head) return head, done end -function fonts.goodies.colorschemes.enable() - tasks.appendaction("processors","fonts","fonts.goodies.colorschemes.coloring") - function fonts.goodies.colorschemes.enable() end +function colorschemes.enable() + nodes.tasks.appendaction("processors","fonts","fonts.goodies.colorschemes.coloring") + function colorschemes.enable() end end -- installation (collected to keep the overview) @@ -252,14 +256,17 @@ table.insert(fonts.triggers, 1, "goodies") table.insert(fonts.triggers, 2, "featureset") -- insert after table.insert(fonts.triggers, "colorscheme") -fonts.initializers.base.otf.goodies = fonts.initializers.common.goodies -fonts.initializers.node.otf.goodies = fonts.initializers.common.goodies +local base_initializers = fonts.initializers.base.otf +local node_initializers = fonts.initializers.node.otf + +base_initializers.goodies = set_goodies +node_initializers.goodies = set_goodies -fonts.initializers.base.otf.featureset = fonts.initializers.common.featureset -fonts.initializers.node.otf.featureset = fonts.initializers.common.featureset +base_initializers.featureset = set_featureset +node_initializers.featureset = set_featureset -fonts.initializers.base.otf.colorscheme = fonts.initializers.common.colorscheme -fonts.initializers.node.otf.colorscheme = fonts.initializers.common.colorscheme +base_initializers.colorscheme = set_colorscheme +node_initializers.colorscheme = set_colorscheme -- experiment, we have to load the definitions immediately as they precede -- the definition so they need to be initialized in the typescript @@ -286,7 +293,7 @@ local function initialize(goodies) end end -fonts.goodies.register("mathematics", initialize) +fontgoodies.register("mathematics", initialize) -- The following file (husayni.lfg) is the experimental setup that we used -- for Idris font. For the moment we don't store this in the cache and quite |