From 3a4769dbc4ecb788c53d91e1eca7affb73abc01d Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 25 Nov 2013 21:20:13 +0200 Subject: beta 2013.11.25 20:09 --- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4128 -> 4128 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/data-res.lua | 3 ++- tex/context/base/font-otf.lua | 3 +++ tex/context/base/font-otn.lua | 15 +++++++++++---- tex/context/base/font-sel.lua | 10 +++++++--- tex/context/base/l-os.lua | 3 ++- tex/context/base/spac-ali.mkiv | 7 +++++++ tex/context/base/status-files.pdf | Bin 24724 -> 24679 bytes tex/context/base/status-lua.pdf | Bin 227331 -> 227449 bytes tex/context/base/util-lib.lua | 3 +++ tex/context/base/util-sql-imp-swiglib.lua | 4 ++-- tex/generic/context/luatex/luatex-fonts-merged.lua | 15 ++++++++++----- 14 files changed, 49 insertions(+), 18 deletions(-) (limited to 'tex') diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index db204d665..1f720a526 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.11.22 22:29} +\newcontextversion{2013.11.25 20:09} %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 4df980db9..cd0e34fc4 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 2f74afd60..69ef0a112 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.11.22 22:29} +\edef\contextversion{2013.11.25 20:09} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/data-res.lua b/tex/context/base/data-res.lua index f1ddb62aa..64c38f82c 100644 --- a/tex/context/base/data-res.lua +++ b/tex/context/base/data-res.lua @@ -1526,10 +1526,11 @@ local function findwildcardfiles(filename,allresults,result) -- todo: remap: and end else local hashes = instance.hashes +-- inspect(hashes) for k=1,#hashes do local hash = hashes[k] local hashname, hashtype = hash.name, hash.type - if doit(path,files[hashname][bname],bname,hashname,hashtype,result,allresults) then done = true end + if doit(path,files[hashname][base],base,hashname,hashtype,result,allresults) then done = true end if done and not allresults then break end end end diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index e2fd845a0..b2ca54615 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -2025,6 +2025,9 @@ local function copytotfm(data,cache_id) properties.space = spacer properties.encodingbytes = 2 properties.format = data.format or otf_format(filename) or formats.otf +-- if units ~= 1000 and format ~= "truetype" then +-- properties.format = "truetype" +-- end properties.noglyphnames = true properties.filename = filename properties.fontname = fontname diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index 3733d51c2..d9e4b9b64 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -624,9 +624,9 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence) break end end - if stop then - local lig = ligature.ligature - if lig then + local lig = ligature.ligature + if lig then + if stop then if trace_ligatures then local stopchar = stop.char head, start = toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound) @@ -636,8 +636,15 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence) end return head, start, true else - -- ok, goto next lookup + -- weird but happens (in some arabic font) + start.char = lig + if trace_ligatures then + logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(kind,lookupname),gref(startchar),gref(lig)) + end + return head, start, true end + else + -- weird but happens end end return head, start, false diff --git a/tex/context/base/font-sel.lua b/tex/context/base/font-sel.lua index fff425fa1..7926d8dd3 100644 --- a/tex/context/base/font-sel.lua +++ b/tex/context/base/font-sel.lua @@ -10,6 +10,7 @@ local context = context local cleanname = fonts.names.cleanname local gsub, splitup, find = string.gsub, string.splitup, string.find local splitbase, removesuffix = file.splitbase, file.removesuffix +local splitat, lpegmatch = lpeg.splitat, lpeg.match local formatters = string.formatters local settings_to_array = utilities.parsers.settings_to_array @@ -286,21 +287,23 @@ local function savefont(data,alternative,entries) end local function savefeatures(data,alternative,entries) + local e = gsub(entries,"{(.*)}","%1") local f = data.features if not f then f = { } data.features = f end - f[alternative] = entries + f[alternative] = e end local function savegoodies(data,alternative,entries) + local e = gsub(entries,"{(.*)}","%1") local g = data.goodies if not f then g = { } data.goodies = g end - g[alternative] = entries + g[alternative] = e end methods[v_simplefonts] = function(data,alternative,style) @@ -446,10 +449,11 @@ end function selectfont.filterinput(index) local data = data[index] + local p = splitat(":",true) for alternative, _ in next, alternatives do local list = settings_to_array(data.alternatives[alternative]) for _, entry in next, list do - method, entries = splitup(entry,":") + method, entries = lpegmatch(p,entry) if not entries then entries = method method = "name" diff --git a/tex/context/base/l-os.lua b/tex/context/base/l-os.lua index 44e0f53e1..57edc3915 100644 --- a/tex/context/base/l-os.lua +++ b/tex/context/base/l-os.lua @@ -238,7 +238,8 @@ elseif os.type == "windows" then function os.resolvers.platform(t,k) local platform, architecture = "", os.getenv("PROCESSOR_ARCHITECTURE") or "" if find(architecture,"AMD64") then - platform = "mswin-64" + -- platform = "mswin-64" + platform = "win64" else platform = "mswin" end diff --git a/tex/context/base/spac-ali.mkiv b/tex/context/base/spac-ali.mkiv index 6f1ba7f4a..9c7e81379 100644 --- a/tex/context/base/spac-ali.mkiv +++ b/tex/context/base/spac-ali.mkiv @@ -20,6 +20,13 @@ %D merged into one and caching has been added, which makes switching %D twice as fast. +% Todo: find a way to force last lines to have some distance from the right +% edge (problem: keywords or presets), maybe a plugin +% +% \setupalign[...,myoption] % last +% +% but that also means myoption gets frozen due to caching. + \registerctxluafile{spac-ali}{1.001} \definesystemattribute[realign] [public] % might be combined with the next one diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 62dd8403d..7258c8591 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 79d1197ec..ae56770be 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/util-lib.lua b/tex/context/base/util-lib.lua index 6498d2661..301ef4e9b 100644 --- a/tex/context/base/util-lib.lua +++ b/tex/context/base/util-lib.lua @@ -93,6 +93,9 @@ local function requireswiglib(required,version) local trace_swiglib = trace_swiglib or package.helpers.trace local library = loaded[required] if library == nil then + if trace_swiglib then + report_swiglib("requiring library %a with version %a",required,version or "any") + end -- initialize a few variables local required_full = gsub(required,"%.","/") -- package.helpers.lualibfile local required_path = pathpart(required_full) diff --git a/tex/context/base/util-sql-imp-swiglib.lua b/tex/context/base/util-sql-imp-swiglib.lua index 1d64ac115..af7012392 100644 --- a/tex/context/base/util-sql-imp-swiglib.lua +++ b/tex/context/base/util-sql-imp-swiglib.lua @@ -23,8 +23,8 @@ local report_state = logs.reporter("sql","swiglib") local helpers = require("swiglib.helpers.core") local sql = utilities.sql -local mysql = require("swiglib.mysql.core") -- "5.6" ------ mysql = swiglib("mysql.core") -- "5.6" +local mysql = require("swiglib.mysql.core") -- "5.6.14" +----- mysql = swiglib("mysql.core") -- "5.6.14" local new_u_char_array = helpers.new_u_char_array or helpers.new_ucharArray local ucharArray_setitem = helpers.u_char_array_setitem or helpers.ucharArray_setitem diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 9bb358c97..6d1450d58 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 : 11/22/13 22:29:17 +-- merge date : 11/25/13 20:09:50 do -- begin closure to overcome local limits and interference @@ -10075,9 +10075,9 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence) break end end - if stop then - local lig=ligature.ligature - if lig then + local lig=ligature.ligature + if lig then + if stop then if trace_ligatures then local stopchar=getchar(stop) head,start=toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound) @@ -10085,9 +10085,14 @@ function handlers.gsub_ligature(head,start,kind,lookupname,ligature,sequence) else head,start=toligature(kind,lookupname,head,start,stop,lig,skipmark,discfound) end - return head,start,true else + setfield(start,"char",lig) + if trace_ligatures then + logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(kind,lookupname),gref(startchar),gref(lig)) + end end + return head,start,true + else end end return head,start,false -- cgit v1.2.3