summaryrefslogtreecommitdiff
path: root/tex/context/base/font-ott.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-04-11 16:45:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-04-11 16:45:00 +0200
commit612f23ed1b01240fdc9ca5132dbd3164e96ed570 (patch)
tree8eafde3944b1b46eae32e68b240a5eb9cf5f71fc /tex/context/base/font-ott.lua
parent0bd8dee4e7e38cfb027bf788505de24aca28261c (diff)
downloadcontext-612f23ed1b01240fdc9ca5132dbd3164e96ed570.tar.gz
beta 2011.04.11 16:45
Diffstat (limited to 'tex/context/base/font-ott.lua')
-rw-r--r--tex/context/base/font-ott.lua43
1 files changed, 23 insertions, 20 deletions
diff --git a/tex/context/base/font-ott.lua b/tex/context/base/font-ott.lua
index 1dbf626ca..800fd3c65 100644
--- a/tex/context/base/font-ott.lua
+++ b/tex/context/base/font-ott.lua
@@ -6,20 +6,21 @@ if not modules then modules = { } end modules ['font-otf'] = {
license = "see context related readme files"
}
-local type, next, tonumber, tostring, rawget, setmetatable = type, next, tonumber, tostring, rawget, setmetatable
+local type, next, tonumber, tostring, rawget = type, next, tonumber, tostring, rawget
local gsub, lower, format, match = string.gsub, string.lower, string.format, string.match
local is_boolean = string.is_boolean
-local allocate = utilities.storage.allocate
+local setmetatableindex = table.setmetatableindex
+local setmetatablenewindex = table.setmetatablenewindex
+local allocate = utilities.storage.allocate
-local fonts = fonts
-local otf = fonts.handlers.otf
+local fonts = fonts
+local otf = fonts.handlers.otf
+local tables = { }
+otf.tables = tables
-local tables = { }
-otf.tables = tables
-
-local otffeatures = fonts.constructors.newfeatures("otf")
-local registerotffeature = otffeatures.register
+local otffeatures = fonts.constructors.newfeatures("otf")
+local registerotffeature = otffeatures.register
local scripts = allocate {
['arab'] = 'arabic',
@@ -672,10 +673,10 @@ local function resolve(t,k)
return "dflt"
end
-setmetatable(verbosescripts, { __index = resolve })
-setmetatable(verboselanguages, { __index = resolve })
-setmetatable(verbosefeatures, { __index = resolve })
-setmetatable(verbosebaselines, { __index = resolve })
+setmetatableindex(verbosescripts, resolve)
+setmetatableindex(verboselanguages, resolve)
+setmetatableindex(verbosefeatures, resolve)
+setmetatableindex(verbosebaselines, resolve)
local function resolve(t,k)
if k then
@@ -688,13 +689,13 @@ local function resolve(t,k)
return "dflt"
end
-local function assign(t,k,v)
- -- forget about it
-end
+setmetatableindex(scripts, resolve)
+setmetatableindex(scripts, resolve)
+setmetatableindex(languages, resolve)
-setmetatable(scripts, { __index = resolve, __newindex = assign })
-setmetatable(languages, { __index = resolve, __newindex = assign })
-setmetatable(baselines, { __index = resolve, __newindex = assign })
+setmetatablenewindex(languages, "ignore")
+setmetatablenewindex(baselines, "ignore")
+setmetatablenewindex(baselines, "ignore")
local function resolve(t,k)
if k then
@@ -719,6 +720,8 @@ local function resolve(t,k)
return "dflt"
end
+setmetatableindex(features, resolve)
+
local function assign(t,k,v)
if k then
v = lower(v)
@@ -727,7 +730,7 @@ local function assign(t,k,v)
end
end
-setmetatable(features, { __index = resolve, __newindex = assign })
+setmetatablenewindex(features, assign)
local checkers = {
rand = function(v)