diff options
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua new file mode 100644 index 00000000000..5092aca2633 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua @@ -0,0 +1,173 @@ +-- +-- This is file `luaotfload.lua', +-- generated with the docstrip utility. +-- +-- The original source files were: +-- +-- luaotfload.dtx (with options: `lua') +-- This is a generated file. +-- +-- Copyright (C) 2009 by Elie Roux <elie.roux@telecom-bretagne.eu> +-- +-- This work is under the CC0 license. +-- +-- This work consists of the main source file luaotfload.dtx +-- and the derived files +-- luaotfload.sty, luaotfload.lua +-- +luaotfload = { } + +luaotfload.module = { + name = "luaotfload", + version = 1.02, + date = "2009/06/11", + description = "ConTeXt font loading system.", + author = "Elie Roux & Hans Hagen", + copyright = "Elie Roux", + license = "CC0" +} + +luatextra.provides_module(luaotfload.module) + + +function luaotfload.loadmodule(name) + local foundname = kpse.find_file('otfl-'..name,"tex") + if not foundname then + luatextra.module_error('luaotfload', string.format('file otfl-%s not found.', name)) + return + end + dofile(foundname) +end + + +string.strip = string.stripspaces + +file = fpath +file.extname = fpath.suffix + + +local splitters_s, splitters_m = { }, { } + +function lpeg.splitat(separator,single) + local splitter = (single and splitters_s[separator]) or splitters_m[separator] + if not splitter then + separator = lpeg.P(separator) + if single then + local other, any = lpeg.C((1 - separator)^0), lpeg.P(1) + splitter = other * (separator * lpeg.C(any^0) + "") + splitters_s[separator] = splitter + else + local other = lpeg.C((1 - separator)^0) + splitter = other * (separator * other)^0 + splitters_m[separator] = splitter + end + end + return splitter +end + +function table.compact(t) + if t then + for k,v in next, t do + if not next(v) then + t[k] = nil + end + end + end +end + +function table.sortedhashkeys(tab) -- fast one + local srt = { } + for key,_ in next, tab do + srt[#srt+1] = key + end + table.sort(srt) + return srt +end + +function table.reverse_hash(h) + local r = { } + for k,v in next, h do + r[v] = string.lower(string.gsub(k," ","")) + end + return r +end + +function table.reverse(t) + local tt = { } + if #t > 0 then + for i=#t,1,-1 do + tt[#tt+1] = t[i] + end + end + return tt +end + + +luaotfload.loadmodule('luat-dum.lua') -- not used in context at all +luaotfload.loadmodule('data-con.lua') -- maybe some day we don't need this one + + +luaotfload.loadmodule('node-ini.lua') + + +function attributes.private(name) + local number = tex.attributenumber['otfl@'..name] + if not number then + luatextra.module_error('luaotfload', string.format('asking for attribute %s, but not declared. Please report to the maintainer of luaotfload.', name)) + end + return number +end + + +luaotfload.loadmodule('node-res.lua') +luaotfload.loadmodule('node-inj.lua') +luaotfload.loadmodule('node-fnt.lua') +luaotfload.loadmodule('node-dum.lua') + +luaotfload.loadmodule('font-ini.lua') +luaotfload.loadmodule('font-tfm.lua') +luaotfload.loadmodule('font-cid.lua') +luaotfload.loadmodule('font-ott.lua') +luaotfload.loadmodule('font-otf.lua') +luaotfload.loadmodule('font-otd.lua') +luaotfload.loadmodule('font-oti.lua') +luaotfload.loadmodule('font-otb.lua') +luaotfload.loadmodule('font-otn.lua') +luaotfload.loadmodule('font-ota.lua') +luaotfload.loadmodule('font-otc.lua') + + +do + local temp = callback.register + callback.register = function (...) + return + end + luaotfload.loadmodule('font-def.lua') + callback.register = temp +end + +luaotfload.loadmodule('font-xtx.lua') +luaotfload.loadmodule('font-dum.lua') + + +fonts.enc.known = {} + + +function luaotfload.register_callbacks() + callback.add('ligaturing', nodes.simple_font_dummy, 'luaotfload.ligaturing') + callback.add('kerning', nodes.simple_font_dummy, 'luaotfload.kerning') + callback.add('pre_linebreak_filter', nodes.simple_font_handler, 'luaotfload.pre_linebreak_filter') + callback.add('hpack_filter', nodes.simple_font_handler, 'luaotfload.hpack_filter') + callback.reset('define_font') + callback.add('define_font' , fonts.define.read, 'luaotfload.define_font', 1) +end + +function luaotfload.unregister_callbacks() + callback.remove('ligaturing', 'luaotfload.ligaturing') + callback.remove('kerning', 'luaotfload.kerning') + callback.remove('pre_linebreak_filter', 'luaotfload.pre_linebreak_filter') + callback.remove('hpack_filter', 'luaotfload.hpack_filter') + callback.remove('define_font', 'luaotfload.define_font') +end +-- +-- End of File `luaotfload.lua'. |