diff options
Diffstat (limited to 'tex/context/base/m-oldotf.mkiv')
-rw-r--r-- | tex/context/base/m-oldotf.mkiv | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tex/context/base/m-oldotf.mkiv b/tex/context/base/m-oldotf.mkiv new file mode 100644 index 000000000..04a83a47b --- /dev/null +++ b/tex/context/base/m-oldotf.mkiv @@ -0,0 +1,83 @@ +%D \module +%D [ file=m-oldotf, +%D version=2015.07.08, +%D title=\CONTEXT\ Extra Modules, +%D subtitle=Traditional OTF Loader, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +% \endinput + +%D This module will go away as soon as we use the new loader code by default. +%D That will happen after extensive testing. Generic support will happen after +%D that. + +\unprotect + +\startluacode + local files = { + "font-otf", + "font-otb", + "font-inj", + "font-ota", + "font-otn", + "font-otd", + "font-otp", + "font-otc", + "font-oth", + "font-odv", + "font-map", + "font-fbk", + "font-gds", + } + local report = logs.reporter("oldotf") + local findfile = resolvers.findfile + local addsuffix = file.addsuffix + report() + report("using traditional font loader code") + report() + for i=1,#files do + local foundfile = findfile(addsuffix(files[i],"lua")) + if foundfile and foundfile ~= "" then + report("loading %a",foundfile) + dofile(foundfile) + end + end + report() + + -- needed for testing: + + local nuts = nodes.nuts + local copy_node = nuts.copy + local kern = nuts.pool.register(nuts.pool.kern()) + local setfield = nuts.setfield + + nuts.setattr(kern,attributes.private('fontkern'),1) -- we can have several, attributes are shared + + nodes.injections.installnewkern(function(k) + local c = copy_node(kern) + setfield(c,"kern",k) + return c + end) + + directives.register("nodes.injections.fontkern", function(v) setfield(kern,"subtype",v and 0 or 1) end) + + local fonts = fonts + local handlers = fonts.handlers + local otf = handlers.otf -- brrr + local afm = handlers.afm -- brrr + local getters = fonts.getters + + getters.kern .opentype = otf.getkern + getters.substitution.opentype = otf.getsubstitution + getters.alternate .opentype = otf.getalternate + getters.multiple .opentype = otf.getmultiple + +\stopluacode + +\protect \endinput |