summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2013-03-17 13:31:00 +0100
committerHans Hagen <pragma@wxs.nl>2013-03-17 13:31:00 +0100
commit6019523a7b45211f173ea906c8407bfba69d87bf (patch)
treee6cec705f8b31d8995a2e35c779a40c3b2b2a066 /tex
parent2bc833c2f33d4bf2eb523c4bff7eb662874e111f (diff)
downloadcontext-6019523a7b45211f173ea906c8407bfba69d87bf.tar.gz
beta 2013.03.17 13:31
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4136 -> 4134 bytes
-rw-r--r--tex/context/base/context-version.pngbin40527 -> 40468 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-con.lua4
-rw-r--r--tex/context/base/font-ctx.lua38
-rw-r--r--tex/context/base/font-otd.lua15
-rw-r--r--tex/context/base/font-sol.lua13
-rw-r--r--tex/context/base/lang-ini.lua69
-rw-r--r--tex/context/base/luat-sto.lua3
-rw-r--r--tex/context/base/scrn-ini.lua2
-rw-r--r--tex/context/base/scrp-ini.lua2
-rw-r--r--tex/context/base/status-files.pdfbin24766 -> 24753 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin210759 -> 210779 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua5
17 files changed, 39 insertions, 120 deletions
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 3ab0e9688..98d024fe4 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.03.16 14:44}
+\newcontextversion{2013.03.17 13:31}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 8b152ffc2..4fa32e48d 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.03.16 14:44}
+\newcontextversion{2013.03.17 13:31}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index b5354d291..0143ce463 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 6d0337de0..2aafefe63 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index 1543025f3..eac5a33ae 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.03.16 14:44}
+\edef\contextversion{2013.03.17 13:31}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 8f4e9590f..b33b02fa4 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.03.16 14:44}
+\edef\contextversion{2013.03.17 13:31}
%D For those who want to use this:
diff --git a/tex/context/base/font-con.lua b/tex/context/base/font-con.lua
index fc687ea58..618bc8f28 100644
--- a/tex/context/base/font-con.lua
+++ b/tex/context/base/font-con.lua
@@ -31,10 +31,6 @@ fonts.constructors = constructors
local handlers = fonts.handlers or { } -- can have preloaded tables
fonts.handlers = handlers
-local specifiers = fonts.specifiers
-local contextsetups = specifiers.contextsetups
-local contextnumbers = specifiers.contextnumbers
-
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua
index ca146b39e..ea4418fef 100644
--- a/tex/context/base/font-ctx.lua
+++ b/tex/context/base/font-ctx.lua
@@ -21,7 +21,7 @@ local sortedhash, sortedkeys, sequenced = table.sortedhash, table.sortedkeys, ta
local settings_to_hash, hash_to_string = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string
local formatcolumns = utilities.formatters.formatcolumns
-local tostring, next, type = tostring, next, type
+local tostring, next, type, rawget = tostring, next, type, rawget
local utfchar, utfbyte = utf.char, utf.byte
local round = math.round
@@ -91,23 +91,28 @@ storage.register("fonts/numbers", numbers, "fonts.specifiers.contextnumbers")
storage.register("fonts/merged", merged, "fonts.specifiers.contextmerged")
storage.register("fonts/synonyms", synonyms, "fonts.specifiers.synonyms")
--- todo: put numbers also in setups .. we only need those at runtime anyway
+-- inspect(setups)
--- if not environment.initex then
--- for i=1,#numbers do
--- setups[i] = setups[numbers[i]]
--- end
--- end
+if environment.initex then
+ setmetatableindex(setups,function(t,k)
+ return type(k) == "number" and rawget(t,numbers[k]) or nil
+ end)
+else
+ setmetatableindex(setups,function(t,k)
+ local v = type(k) == "number" and rawget(t,numbers[k])
+ if v then
+ t[k] = v
+ return v
+ end
+ end)
+end
-utilities.strings.formatters.add(string.formatters,
- "font:name",
- [["'"..file.basename(%s.properties.name).."'"]]
-)
+-- this will move elsewhere ...
-utilities.strings.formatters.add(string.formatters,
- "font:features",
- [["'"..table.sequenced(%s," ",true).."'"]]
-)
+utilities.strings.formatters.add(string.formatters,"font:name", [["'"..file.basename(%s.properties.name).."'"]])
+utilities.strings.formatters.add(string.formatters,"font:features",[["'"..table.sequenced(%s," ",true).."'"]])
+
+-- ... like font-sfm or so
constructors.resolvevirtualtoo = true -- context specific (due to resolver)
@@ -371,9 +376,6 @@ local function definecontext(name,t) -- can be shared
end
t.number = number
setups[name] = t
--- if not environment.initex then
--- setups[number] = t
--- end
return number, t
end
diff --git a/tex/context/base/font-otd.lua b/tex/context/base/font-otd.lua
index fceb0cf01..8a41ebcdb 100644
--- a/tex/context/base/font-otd.lua
+++ b/tex/context/base/font-otd.lua
@@ -45,7 +45,8 @@ local a_to_language = { }
-- we can have a scripts hash in fonts.hashes
function otf.setdynamics(font,attribute)
- local features = contextsetups[contextnumbers[attribute]] -- can be moved to caller
+ -- local features = contextsetups[contextnumbers[attribute]] -- can be moved to caller
+ local features = contextsetups[attribute]
if features then
local dynamics = fontdynamics[font]
dynamic = contextmerged[attribute] or 0
@@ -184,14 +185,6 @@ local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr
end
end
--- local contextresolved = { }
---
--- setmetatableindex(contextresolved, function(t,k)
--- local v = contextsetups[contextnumbers[k]]
--- t[k] = v
--- return v
--- end)
-
-- there is some fuzzy language/script state stuff in properties (temporary)
function otf.dataset(tfmdata,font,attr) -- attr only when explicit (as in special parbuilder)
@@ -200,8 +193,8 @@ function otf.dataset(tfmdata,font,attr) -- attr only when explicit (as in specia
if attr and attr ~= 0 then
dynamic = contextmerged[attr] or 0
- local features = contextsetups[contextnumbers[attr]] -- could be a direct list
- -- local features = contextresolved[attr]
+ -- local features = contextsetups[contextnumbers[attr]] -- could be a direct list
+ local features = contextsetups[attr]
a_enabled = features -- location based
if dynamic == 1 then -- or dynamic == -1 then
-- replace
diff --git a/tex/context/base/font-sol.lua b/tex/context/base/font-sol.lua
index 3114e3847..db2dd24c2 100644
--- a/tex/context/base/font-sol.lua
+++ b/tex/context/base/font-sol.lua
@@ -215,7 +215,7 @@ local function convert(featuresets,name,list)
report_solutions("solution %a of %a uses feature %a with number %s",i,name,feature,fn)
end
else
- report_solutions("solution %a has an invalid feature reference %a",i,name,tostring(feature))
+ report_solutions("solution %a of %a has an invalid feature reference %a",i,name,feature)
end
end
return nofnumbers > 0 and numbers
@@ -569,17 +569,6 @@ local function doit(word,list,best,width,badness,line,set,listdir)
end
end
local font = found.font
- -- local dynamics = found.dynamics
- -- local shared = fontdata[font].shared
- -- if not dynamics then -- we cache this
- -- dynamics = shared.dynamics
- -- found.dynamics = dynamics
- -- end
- -- local processors = found[featurenumber]
- -- if not processors then -- we cache this too
- -- processors = fonts.handlers.otf.setdynamics(font,featurenumber)
- -- found[featurenumber] = processors
- -- end
local setdynamics = setfontdynamics[font]
if setdynamics then
local processes = setdynamics(font,featurenumber)
diff --git a/tex/context/base/lang-ini.lua b/tex/context/base/lang-ini.lua
index 771a502e4..4ae7656d3 100644
--- a/tex/context/base/lang-ini.lua
+++ b/tex/context/base/lang-ini.lua
@@ -88,7 +88,8 @@ end
-- languages.tolang = tolang
--- todo: en+de => merge
+-- patterns=en
+-- patterns=en,de
local function loaddefinitions(tag,specification)
statistics.starttiming(languages)
@@ -300,9 +301,9 @@ function languages.hyphenate(tag,str)
end
end
---~ hyphenation.define ("zerolanguage")
---~ hyphenation.loadpatterns ("zerolanguage") -- else bug
---~ hyphenation.loadexceptions("zerolanguage") -- else bug
+-- hyphenation.define ("zerolanguage")
+-- hyphenation.loadpatterns ("zerolanguage") -- else bug
+-- hyphenation.loadexceptions("zerolanguage") -- else bug
languages.logger = languages.logger or { }
@@ -317,7 +318,7 @@ function languages.logger.report()
return r > 0 and concat(result," ") or "none"
end
--- must happen at the tex end
+-- must happen at the tex end .. will use lang-def.lua
languages.associate('en','latn','eng')
languages.associate('uk','latn','eng')
@@ -336,64 +337,6 @@ statistics.register("language load time", function()
return statistics.elapsedseconds(languages, format(", nofpatterns: %s",nofloaded))
end)
---~ -- obsolete
---~ --
---~ -- loading the 26 languages that we normally load in mkiv, the string based variant
---~ -- takes .84 seconds (probably due to the sub's) while the lpeg variant takes .78
---~ -- seconds
---~ --
---~ -- the following lpeg can probably be improved (it was one of the first I made)
-
---~ local leftbrace = lpeg.P("{")
---~ local rightbrace = lpeg.P("}")
---~ local spaces = lpeg.S(" \r\n\t\f")
---~ local spacing = spaces^0
---~ local validchar = 1-(spaces+rightbrace+leftbrace)
---~ local validword = validchar^1
---~ local content = spacing * leftbrace * spacing * lpeg.C((spacing * validword)^0) * spacing * rightbrace * lpeg.P(true)
---~
---~ local command = lpeg.P("\\patterns")
---~ local parser = (1-command)^0 * command * content
---~
---~ local function filterpatterns(filename)
---~ return lpegmatch(parser,io.loaddata(resolvers.findfile(filename)) or "")
---~ end
---~
---~ local command = lpeg.P("\\hyphenation")
---~ local parser = (1-command)^0 * command * content
---~
---~ local function filterexceptions(filename)
---~ return lpegmatch(parser,io.loaddata(resolvers.findfile(filename)) or "") -- "" ?
---~ end
---~
---~ local function loadthem(tag, filename, filter, target)
---~ statistics.starttiming(languages)
---~ local data, instance = resolve(tag)
---~ local fullname = (filename and filename ~= "" and resolvers.findfile(filename)) or ""
---~ local ok = fullname ~= ""
---~ if ok then
---~ if trace_patterns then
---~ report_initialization("filtering %s for language %a from %a",target,tag,fullname)
---~ end
---~ lang[target](data,filter(fullname) or "")
---~ else
---~ if trace_patterns then
---~ report_initialization("no %s for language %a in %a",target,tag,filename)
---~ end
---~ lang[target](instance,"")
---~ end
---~ statistics.stoptiming(languages)
---~ return ok
---~ end
---~
---~ function hyphenation.loadpatterns(tag, patterns)
---~ return loadthem(tag, patterns, filterpatterns, "patterns")
---~ end
---~
---~ function hyphenation.loadexceptions(tag, exceptions)
---~ return loadthem(tag, exceptions, filterexceptions, "exceptions")
---~ end
-
-- interface
local getnumber = languages.getnumber
diff --git a/tex/context/base/luat-sto.lua b/tex/context/base/luat-sto.lua
index 49ce887b4..7a11b7f5e 100644
--- a/tex/context/base/luat-sto.lua
+++ b/tex/context/base/luat-sto.lua
@@ -23,9 +23,6 @@ local storage = storage
local data = { }
storage.data = data
-local evaluators = { }
-storage.evaluators = evaluators
-
storage.min = 0 -- 500
storage.max = storage.min - 1
storage.noftables = storage.noftables or 0
diff --git a/tex/context/base/scrn-ini.lua b/tex/context/base/scrn-ini.lua
index 8fe1e0cae..4831408f9 100644
--- a/tex/context/base/scrn-ini.lua
+++ b/tex/context/base/scrn-ini.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['scrn-ini'] = {
license = "see context related readme files"
}
+local next = next
+
interactions = { }
interactions.general = interactions.general or { }
local general = interactions.general
diff --git a/tex/context/base/scrp-ini.lua b/tex/context/base/scrp-ini.lua
index b8f5d52d0..c375e2ec3 100644
--- a/tex/context/base/scrp-ini.lua
+++ b/tex/context/base/scrp-ini.lua
@@ -545,7 +545,7 @@ function autofontfeature.handler(head)
local slot = cache_yes[font]
local attr = slot[script]
if not attr then
- attr = mergecontext(dynamic,name,what)
+ attr = mergecontext(dynamic,name,2)
slot[script] = attr
if trace_scripts then
report_scripts("script: %s, trigger %C, dynamic: %a, variant: %a",script,char,attr,"extended")
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 204a6f2ba..a68199b7d 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 1f12a5f7d..d27bb960e 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index b29f8b17d..2a3cf950d 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 03/16/13 14:44:57
+-- merge date : 03/17/13 13:31:17
do -- begin closure to overcome local limits and interference
@@ -3484,9 +3484,6 @@ local constructors=fonts.constructors or {}
fonts.constructors=constructors
local handlers=fonts.handlers or {}
fonts.handlers=handlers
-local specifiers=fonts.specifiers
-local contextsetups=specifiers.contextsetups
-local contextnumbers=specifiers.contextnumbers
local allocate=utilities.storage.allocate
local setmetatableindex=table.setmetatableindex
constructors.dontembed=allocate()