summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
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.pdfbin4122 -> 4129 bytes
-rw-r--r--tex/context/base/context-version.pngbin40132 -> 40255 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-mis.lua2
-rw-r--r--tex/context/base/font-otf.lua2
-rw-r--r--tex/context/base/font-otp.lua30
-rw-r--r--tex/context/base/l-string.lua1
-rw-r--r--tex/context/base/meta-ini.mkiv2
-rw-r--r--tex/context/base/mlib-pps.mkiv6
-rw-r--r--tex/context/base/mult-low.lua2
-rw-r--r--tex/context/base/pack-box.mkiv14
-rw-r--r--tex/context/base/pack-com.mkiv6
-rw-r--r--tex/context/base/page-box.mkvi8
-rw-r--r--tex/context/base/page-txt.mkvi20
-rw-r--r--tex/context/base/status-files.pdfbin24733 -> 24787 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin208427 -> 208438 bytes
-rw-r--r--tex/context/base/supp-box.mkiv2
-rw-r--r--tex/context/base/tabl-tbl.mkiv37
-rw-r--r--tex/context/base/typo-del.mkiv22
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua102
23 files changed, 128 insertions, 136 deletions
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 2d272051e..6aa0a82d5 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.01.21 18:18}
+\newcontextversion{2013.01.22 18:33}
%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 e30f91f58..2e0a6c4c4 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.01.21 18:18}
+\newcontextversion{2013.01.22 18:33}
%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 1e37d5bb4..1318060a5 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 beb1a9ba9..26753f6a0 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 0796a482c..b6f91d1ed 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.01.21 18:18}
+\edef\contextversion{2013.01.22 18:33}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index db76f786a..3e85c4426 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.01.21 18:18}
+\edef\contextversion{2013.01.22 18:33}
%D For those who want to use this:
diff --git a/tex/context/base/font-mis.lua b/tex/context/base/font-mis.lua
index c103d57d5..cfef770d7 100644
--- a/tex/context/base/font-mis.lua
+++ b/tex/context/base/font-mis.lua
@@ -22,7 +22,7 @@ local handlers = fonts.handlers
handlers.otf = handlers.otf or { }
local otf = handlers.otf
-otf.version = otf.version or 2.738
+otf.version = otf.version or 2.740
otf.cache = otf.cache or containers.define("fonts", "otf", otf.version, true)
function otf.loadcached(filename,format,sub)
diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua
index 4d0828209..782e2d194 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -47,7 +47,7 @@ local otf = fonts.handlers.otf
otf.glists = { "gsub", "gpos" }
-otf.version = 2.738 -- beware: also sync font-mis.lua
+otf.version = 2.740 -- beware: also sync font-mis.lua
otf.cache = containers.define("fonts", "otf", otf.version, true)
local fontdata = fonts.hashes.identifiers
diff --git a/tex/context/base/font-otp.lua b/tex/context/base/font-otp.lua
index fc98b2bdc..62368adc0 100644
--- a/tex/context/base/font-otp.lua
+++ b/tex/context/base/font-otp.lua
@@ -11,6 +11,7 @@ if not modules then modules = { } end modules ['font-otp'] = {
local next, type = next, type
local sort, concat = table.sort, table.concat
+local sortedhash = table.sortedhash
local trace_packing = false trackers.register("otf.packing", function(v) trace_packing = v end)
local trace_loading = false trackers.register("otf.loading", function(v) trace_loading = v end)
@@ -99,18 +100,17 @@ local function tabstr_boolean(t)
end
end
--- -- saves only a few tens of bytes
---
--- local function stripdata(data)
--- for k, v in next, data do
--- if not v or v == "" then
--- data[k] = nil
--- elseif type(v) == "table" then
--- stripdata(v) -- keep empty tables
--- end
--- end
+-- tabstr_boolean_x = tabstr_boolean
+
+-- tabstr_boolean = function(t)
+-- local a = tabstr_normal(t)
+-- local b = tabstr_boolean_x(t)
+-- print(a)
+-- print(b)
+-- return b
-- end
+
local function packdata(data)
if data then
-- stripdata(data)
@@ -118,7 +118,7 @@ local function packdata(data)
local hh, tt, cc = { }, { }, { }
local nt, ntt = 0, 0
local function pack_normal(v)
- local tag = tabstr_normal(v,flat)
+ local tag = tabstr_normal(v)
local ht = h[tag]
if ht then
c[ht] = c[ht] + 1
@@ -319,18 +319,18 @@ local function packdata(data)
for _, lookup in next, lookups do
local rules = lookup.rules
if rules then
- for i=1,#rules do -- was next loop
+ for i=1,#rules do
local rule = rules[i]
local r = rule.before if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end
local r = rule.after if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end
local r = rule.current if r then for i=1,#r do r[i] = pack_boolean(r[i]) end end
- local r = rule.replacements if r then rule.replacements = pack_boolean(r) end
- local r = rule.lookups if r then rule.lookups = pack_boolean(r) end
+ local r = rule.replacements if r then rule.replacements = pack_flat (r) end
+ local r = rule.lookups if r then rule.lookups = pack_indexed(r) end
end
end
end
end
- local anchor_to_lookup = resources.anchor_to_lookup
+ local anchor_to_lookup = resources.anchor_to_lookup
if anchor_to_lookup then
for anchor, lookup in next, anchor_to_lookup do
anchor_to_lookup[anchor] = pack_normal(lookup)
diff --git a/tex/context/base/l-string.lua b/tex/context/base/l-string.lua
index 828285ca1..b6e3576f0 100644
--- a/tex/context/base/l-string.lua
+++ b/tex/context/base/l-string.lua
@@ -99,7 +99,6 @@ function string.is_empty(str)
end
end
-
-- if not string.escapedpattern then
--
-- local patterns_escapes = {
diff --git a/tex/context/base/meta-ini.mkiv b/tex/context/base/meta-ini.mkiv
index aea43ee87..ef7e86540 100644
--- a/tex/context/base/meta-ini.mkiv
+++ b/tex/context/base/meta-ini.mkiv
@@ -566,7 +566,7 @@
\unexpanded\def\meta_obey_box_origin
{\setbox\b_meta_graphic\hbox\bgroup
- \hskip\MPllx\raise\MPlly\box\b_meta_graphic
+ \kern\MPllx\raise\MPlly\box\b_meta_graphic
\egroup}
\unexpanded\def\obeyMPboxdepth {\let\meta_relocate_box\meta_obey_box_depth }
diff --git a/tex/context/base/mlib-pps.mkiv b/tex/context/base/mlib-pps.mkiv
index 3ecabc1c3..f21d84e0d 100644
--- a/tex/context/base/mlib-pps.mkiv
+++ b/tex/context/base/mlib-pps.mkiv
@@ -126,7 +126,7 @@
\def\doMPLIBstopgroup#1#2#3#4#5#6% some day this might happen elsewhere
{\egroup
- \setbox\scratchbox\hbox{\hskip\onebasepoint\box\scratchbox}% weird correction
+ \setbox\scratchbox\hbox{\kern\onebasepoint\box\scratchbox}% weird correction
\wd\scratchbox \dimexpr#5\onebasepoint-#3\onebasepoint+2\onebasepoint\relax
\ht\scratchbox #6\onebasepoint
\dp\scratchbox-#4\onebasepoint
@@ -134,8 +134,8 @@
attr {/Group << /S /Transparency /I \ifnum#1=1 true \else false \fi /K \ifnum#1=1 true \else false \fi >>}
resources {\pdfbackendcurrentresources}
\scratchbox
- \setbox\scratchbox\hbox\bgroup\hskip-\onebasepoint\pdfrefxform\pdflastxform\egroup
- \setbox\scratchbox\hbox\bgroup\hskip-\onebasepoint\pdfrefxform\pdflastxform\egroup
+ \setbox\scratchbox\hbox\bgroup\kern-\onebasepoint\pdfrefxform\pdflastxform\egroup
+ \setbox\scratchbox\hbox\bgroup\kern-\onebasepoint\pdfrefxform\pdflastxform\egroup
\wd\scratchbox\zeropoint
\ht\scratchbox\zeropoint
\dp\scratchbox\zeropoint
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index 9b95be3cd..bdce5af7e 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -332,6 +332,8 @@ return {
"obeylualines", "obeyluatokens",
"startluacode", "stopluacode", "startlua", "stoplua",
--
+ "carryoverpar",
+ --
"Umathbotaccent",
}
}
diff --git a/tex/context/base/pack-box.mkiv b/tex/context/base/pack-box.mkiv
index 5829657d7..f8b36691c 100644
--- a/tex/context/base/pack-box.mkiv
+++ b/tex/context/base/pack-box.mkiv
@@ -233,7 +233,7 @@
\global\advance\boxhdisplacement\d_pack_layers_x_position
\ifdim\boxhdisplacement<\zeropoint
\global\setbox\b_pack_boxes_collector\hbox
- {\hskip-\boxhdisplacement
+ {\kern-\boxhdisplacement
\box\b_pack_boxes_collector}%
\fi
\global\advance\boxvdisplacement\d_pack_layers_y_position
@@ -246,7 +246,7 @@
\d_pack_layers_y_size\htdp\b_pack_boxes_collector
\global\setbox\b_pack_boxes_collector\hbox
{\box\b_pack_boxes_collector
- \hskip\dimexpr
+ \kern\dimexpr
-\d_pack_layers_x_size
+\d_pack_layers_x_position
\ifdim\boxhdisplacement<\zeropoint
@@ -888,12 +888,12 @@
\setbox\nextbox\vbox
{\forgetall % already done
\offinterlineskip
- \vskip\scratchtopoffset
+ \kern\scratchtopoffset
\hbox
- {\hskip\scratchleftoffset
+ {\kern\scratchleftoffset
\box\nextbox
- \hskip\scratchrightoffset}%
- \vskip\scratchbottomoffset}%
+ \kern\scratchrightoffset}%
+ \kern\scratchbottomoffset}%
\ht\nextbox\htdp\nextbox
\dp\nextbox\zeropoint
\fi
@@ -902,7 +902,7 @@
\scratchdepth \offsetboxparameter\c!depth
\edef\p_location{\offsetboxparameter\c!location}%
\setbox\nextbox\hbox
- {\hskip\scratchxposition
+ {\kern\scratchxposition
\lower\scratchyposition\hbox
{\ifx\p_location\empty
\box\nextbox
diff --git a/tex/context/base/pack-com.mkiv b/tex/context/base/pack-com.mkiv
index d0768d97c..113ae89ab 100644
--- a/tex/context/base/pack-com.mkiv
+++ b/tex/context/base/pack-com.mkiv
@@ -291,7 +291,7 @@
{\aligntab
\aligntab
\aligntab
- \hskip\p_distance
+ \kern\p_distance
\aligntab
\pack_combinations_pickup}
@@ -619,12 +619,12 @@
\def\pack_pairedboxes_flush_left
{\box\b_pack_pairedboxes_second
- \hskip\pairedboxparameter\c!distance
+ \kern\pairedboxparameter\c!distance
\box\b_pack_pairedboxes_first}
\def\pack_pairedboxes_flush_right
{\box\b_pack_pairedboxes_first
- \hskip\pairedboxparameter\c!distance
+ \kern\pairedboxparameter\c!distance
\box\b_pack_pairedboxes_second}
\def\pack_pairedboxes_flush_top
diff --git a/tex/context/base/page-box.mkvi b/tex/context/base/page-box.mkvi
index 58a5627cb..8f5647a14 100644
--- a/tex/context/base/page-box.mkvi
+++ b/tex/context/base/page-box.mkvi
@@ -99,7 +99,7 @@
{\setbox#box\vbox
{\offinterlineskip
\dorecurse{\layoutparameter\c!ny}
- {\hbox{\dorecurse{\layoutparameter\c!nx}{\copy#box\hskip\layoutparameter\c!dx}\unskip}%
+ {\hbox{\dorecurse{\layoutparameter\c!nx}{\copy#box\kern\layoutparameter\c!dx}\unskip}%
\vskip\layoutparameter\c!dy}
\unskip}}
@@ -194,7 +194,7 @@
\advance\scratchwidth \scratchoffset
\ifconditional#right\relax
\scratchdimen-\scratchoffset
- \hskip\scratchdimen
+ \kern\scratchdimen
\else
\scratchdimen\zeropoint
\fi
@@ -227,10 +227,10 @@
\doifbothsides
{\advance\scratchwidth\scratchoffset
\scratchdimen-\scratchoffset
- \hskip\scratchdimen}%
+ \kern\scratchdimen}%
{\scratchdimen\zeropoint}
{\scratchdimen-\scratchoffset
- \hskip\scratchdimen}%
+ \kern\scratchdimen}%
\lower\scratchoffset\hbox
{\clip
[\c!hoffset=\scratchdimen,
diff --git a/tex/context/base/page-txt.mkvi b/tex/context/base/page-txt.mkvi
index dc445e0e1..707af25e9 100644
--- a/tex/context/base/page-txt.mkvi
+++ b/tex/context/base/page-txt.mkvi
@@ -555,40 +555,40 @@
{\edef\currentlayoutelement{\currentlayouttextline:\v!edge}%
\page_layouts_place_element_indeed\leftedgewidth
{\hss\layoutelementparameter#parameter}%
- \hskip\leftedgedistance}
+ \kern\leftedgedistance}
\def\page_layouts_left_margin_element#parameter#extrastate%
{\edef\currentlayoutelement{\currentlayouttextline:\v!margin}%
\page_layouts_place_element_indeed\leftmarginwidth
{\hbox to \leftmarginwidth{\hss\layoutelementparameter#parameter}%
\ifnum#extrastate=\page_layouts_extra_at_margin_left
- \hskip-\leftmarginwidth
+ \kern-\leftmarginwidth
\hbox to \leftmarginwidth{\hss\layoutelementparameter\c!margintext}%
\fi}%
- \hskip\leftmargindistance}
+ \kern\leftmargindistance}
\def\page_layouts_text_body_element#left#middle#right#extrastate%
{\edef\currentlayoutelement{\currentlayouttextline:\v!text}%
\page_layouts_place_element_indeed\makeupwidth
{\hbox to \makeupwidth{\ifnum#extrastate=\page_layouts_extra_at_margin_left\page_layouts_place_extra_text_left\fi\layoutelementparameter#left\hss}%
- \hskip-\makeupwidth
+ \kern-\makeupwidth
\hbox to \makeupwidth{\hss\layoutelementparameter#middle\hss}%
- \hskip-\makeupwidth
+ \kern-\makeupwidth
\hbox to \makeupwidth{\hss\layoutelementparameter#right\ifnum#extrastate=\page_layouts_extra_at_margin_right\page_layouts_place_extra_text_right\fi}}}
\def\page_layouts_right_margin_element#parameter#extrastate%
{\edef\currentlayoutelement{\currentlayouttextline:\v!margin}%
- \hskip\rightmargindistance
+ \kern\rightmargindistance
\page_layouts_place_element_indeed\rightmarginwidth
{\hbox to \rightmarginwidth{\layoutelementparameter#parameter\hss}%
\ifnum#extrastate=\page_layouts_extra_at_margin_right
- \hskip-\rightmarginwidth
+ \kern-\rightmarginwidth
\hbox to \rightmarginwidth{\layoutelementparameter\c!margintext\hss}%
\fi}}
\def\page_layouts_right_edge_element#parameter%
{\edef\currentlayoutelement{\currentlayouttextline:\v!edge}%
- \hskip\rightedgedistance
+ \kern\rightedgedistance
\page_layouts_place_element_indeed\rightedgewidth
{\layoutelementparameter#parameter\hss}}
@@ -619,8 +619,8 @@
%D This code will move to \type {page-flt.tex}.
-\appendtoks \placerightmarginblock \hskip-\rightmarginwidth \to \rightmargintextcontent
-\appendtoks \placeleftmarginblock \hskip-\leftmarginwidth \to \leftmargintextcontent
+\appendtoks \placerightmarginblock \kern-\rightmarginwidth \to \rightmargintextcontent
+\appendtoks \placeleftmarginblock \kern-\leftmarginwidth \to \leftmargintextcontent
%D \macros
%D {definetext}
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 0c20b0e47..9db601262 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 8f0c2a65d..06121b179 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/supp-box.mkiv b/tex/context/base/supp-box.mkiv
index 84ae00da1..8ab205d4c 100644
--- a/tex/context/base/supp-box.mkiv
+++ b/tex/context/base/supp-box.mkiv
@@ -1989,7 +1989,7 @@
\scratchwidth\wd\ifdim\wd\nextbox>\wd\processbox\nextbox\else\processbox\fi
\setbox\processbox\hbox to \scratchwidth
{\hbox to \scratchwidth{\hss\box\processbox\hss}%
- \hskip-\scratchwidth
+ \kern-\scratchwidth
\hbox to \scratchwidth{\hss\box\nextbox \hss}}}
\unexpanded\def\startoverlay
diff --git a/tex/context/base/tabl-tbl.mkiv b/tex/context/base/tabl-tbl.mkiv
index 03e716e40..b5c3b0064 100644
--- a/tex/context/base/tabl-tbl.mkiv
+++ b/tex/context/base/tabl-tbl.mkiv
@@ -400,11 +400,11 @@
% \unexpanded % we can expand this one
\def\tabl_tabulate_inject_pre_skip#1%
{\ifdim#1>\zeropoint
- \hskip#1\relax
+ \kern#1\relax % was \hskip
\else\ifnum\c_tabl_tabulate_column=\zerocount
\ifconditional\c_tabl_tabulate_autorulespacing
\ifcase\c_tabl_tabulate_has_rule_spec_first\else
- \hskip\s_tabl_tabulate_first\relax
+ \kern\s_tabl_tabulate_first\relax % was \hskip
\fi
\fi
\fi\fi}
@@ -412,11 +412,11 @@
% \unexpanded % we can expand this one
\def\tabl_tabulate_inject_post_skip#1%
{\ifdim#1>\zeropoint
- \hskip#1\relax
+ \kern#1\relax % was \hskip
\else\ifnum\c_tabl_tabulate_columns=\c_tabl_tabulate_nofcolumns
\ifconditional\c_tabl_tabulate_autorulespacing
\ifcase\c_tabl_tabulate_has_rule_spec_last\else
- \hskip\s_tabl_tabulate_last\relax
+ \kern\s_tabl_tabulate_last\relax % was \hskip
\fi
\fi
\fi\fi}
@@ -1451,35 +1451,6 @@
\let\tabl_tabulate_hrule_inject\tabl_tabulate_hrule_inject_second
\to \t_tabl_tabulate_initializers_second
-% \def\totaltabulatecolumns{0}
-%
-% \def\donormaltabulatehlinerule
-% {\leaders \hrule
-% \s!height\dimexpr.5\lineheight-\strutdepth
-% \s!depth-\dimexpr.5\lineheight-\strutdepth+\d_tabl_tabulate_hrulethickness_local
-% \hfill}
-%
-% \def\docoloredtabulatehlinerule
-% {\dousecolorparameter\currenttabulationlocalhrulecolor
-% \donormaltabulatehlinerule}
-%
-% \def\dotabulatelinerule
-% {\multispan\totaltabulatecolumns % \multispan is a plain macro
-% % for the moment this one
-% \strut\hskip\d_tabl_tabulate_margin
-% % neg values are ok !
-% \hskip\d_tabl_tabulate_indent\relax % new august 2003
-% \ifcase\d_tabl_tabulate_hrulethickness_local\else
-% \iftrialtypesetting % does not happen as we nil the caller
-% \donormaltabulatehlinerule
-% \else\ifx\currenttabulationlocalhrulecolor\empty
-% \donormaltabulatehlinerule
-% \else
-% \docoloredtabulatehlinerule
-% \fi\fi
-% \fi
-% \cr}
-
%D Color:
% \starttabulate[||p||]
diff --git a/tex/context/base/typo-del.mkiv b/tex/context/base/typo-del.mkiv
index ee5d76266..8dfb2d461 100644
--- a/tex/context/base/typo-del.mkiv
+++ b/tex/context/base/typo-del.mkiv
@@ -359,17 +359,17 @@
\ignorespaces}
\def\typo_delimited_stop_par
- {\removeunwantedspaces
- \removelastskip
- \rightdelimitedtextmark
- \endgroup
- \popmacro\checkindentation
- \typo_delimited_stop_par_indeed
- \delimitedtextparameter\c!after
- \doifsomething{\delimitedtextparameter\c!spaceafter}
- {\blank[\delimitedtextparameter\c!spaceafter]}%
- \useindentnextparameter\delimitedtextparameter
- \dorechecknextindentation}% AM: This was missing!
+ {\removeunwantedspaces
+ \removelastskip
+ \rightdelimitedtextmark
+ \carryoverpar\endgroup % new per 2013-01-21 ... please left floats
+ \popmacro\checkindentation
+ \typo_delimited_stop_par_indeed
+ \delimitedtextparameter\c!after
+ \doifsomething{\delimitedtextparameter\c!spaceafter}
+ {\blank[\delimitedtextparameter\c!spaceafter]}%
+ \useindentnextparameter\delimitedtextparameter
+ \dorechecknextindentation}% AM: This was missing!
\def\typo_delimited_start_txt
{\let\typo_delimited_stop\typo_delimited_stop_txt
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 0b714c1a7..7b2b0a282 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 : 01/21/13 18:18:50
+-- merge date : 01/22/13 18:33:20
do -- begin closure to overcome local limits and interference
@@ -949,7 +949,6 @@ function string.is_empty(str)
end
end
-
-- if not string.escapedpattern then
--
-- local patterns_escapes = {
@@ -5794,7 +5793,7 @@ local otf = fonts.handlers.otf
otf.glists = { "gsub", "gpos" }
-otf.version = 2.738 -- beware: also sync font-mis.lua
+otf.version = 2.740 -- beware: also sync font-mis.lua
otf.cache = containers.define("fonts", "otf", otf.version, true)
local fontdata = fonts.hashes.identifiers
@@ -9014,19 +9013,40 @@ local registerotffeature = otffeatures.register
process features right.</p>
--ldx]]--
-analyzers.constants = {
- init = 1,
- medi = 2,
- fina = 3,
- isol = 4,
- -- devanagari
- rphf = 5,
- half = 6,
- pref = 7,
- blwf = 8,
- pstf = 9,
+-- never use these numbers directly
+
+local s_init = 1 local s_rphf = 7
+local s_medi = 2 local s_half = 8
+local s_fina = 3 local s_pref = 9
+local s_isol = 4 local s_blwf = 10
+local s_mark = 5 local s_pstf = 11
+local s_rest = 6
+
+local states = {
+ init = s_init,
+ medi = s_medi,
+ fina = s_fina,
+ isol = s_isol,
+ mark = s_mark,
+ rest = s_rest,
+ rphf = s_rphf,
+ half = s_half,
+ pref = s_pref,
+ blwf = s_blwf,
+ pstf = s_pstf,
+}
+
+local features = {
+ init = s_init,
+ medi = s_medi,
+ fina = s_fina,
+ isol = s_isol,
+ -- mark = s_mark,
}
+analyzers.states = states
+analyzers.features = features
+
-- todo: analyzers per script/lang, cross font, so we need an font id hash -> script
-- e.g. latin -> hyphenate, arab -> 1/2/3 analyze -- its own namespace
@@ -9044,40 +9064,40 @@ function analyzers.setstate(head,font)
if d then
if d.class == "mark" or (useunicodemarks and categories[char] == "mn") then
done = true
- current[a_state] = 5 -- mark
+ current[a_state] = s_mark
elseif n == 0 then
first, last, n = current, current, 1
- current[a_state] = 1 -- init
+ current[a_state] = s_init
else
last, n = current, n+1
- current[a_state] = 2 -- medi
+ current[a_state] = s_medi
end
else -- finish
if first and first == last then
- last[a_state] = 4 -- isol
+ last[a_state] = s_isol
elseif last then
- last[a_state] = 3 -- fina
+ last[a_state] = s_fina
end
first, last, n = nil, nil, 0
end
elseif id == disc_code then
-- always in the middle
- current[a_state] = 2 -- midi
+ current[a_state] = s_midi
last = current
else -- finish
if first and first == last then
- last[a_state] = 4 -- isol
+ last[a_state] = s_isol
elseif last then
- last[a_state] = 3 -- fina
+ last[a_state] = s_fina
end
first, last, n = nil, nil, 0
end
current = current.next
end
if first and first == last then
- last[a_state] = 4 -- isol
+ last[a_state] = s_isol
elseif last then
- last[a_state] = 3 -- fina
+ last[a_state] = s_fina
end
return head, done
end
@@ -9239,19 +9259,19 @@ local function finish(first,last)
if first == last then
local fc = first.char
if isol_fina_medi_init[fc] or isol_fina[fc] then
- first[a_state] = 4 -- isol
+ first[a_state] = s_isol
else
warning(first,"isol")
- first[a_state] = 0 -- error
+ first[a_state] = s_error
end
else
local lc = last.char
if isol_fina_medi_init[lc] or isol_fina[lc] then -- why isol here ?
-- if laststate == 1 or laststate == 2 or laststate == 4 then
- last[a_state] = 3 -- fina
+ last[a_state] = s_fina
else
warning(last,"fina")
- last[a_state] = 0 -- error
+ last[a_state] = s_error
end
end
first, last = nil, nil
@@ -9259,10 +9279,10 @@ local function finish(first,last)
-- first and last are either both set so we never com here
local fc = first.char
if isol_fina_medi_init[fc] or isol_fina[fc] then
- first[a_state] = 4 -- isol
+ first[a_state] = s_isol
else
warning(first,"isol")
- first[a_state] = 0 -- error
+ first[a_state] = s_error
end
first = nil
end
@@ -9279,33 +9299,33 @@ function methods.arab(head,font,attr) -- maybe make a special version with no tr
done = true
local char = current.char
if marks[char] or (useunicodemarks and categories[char] == "mn") then
- current[a_state] = 5 -- mark
+ current[a_state] = s_mark
elseif isol[char] then -- can be zwj or zwnj too
first, last = finish(first,last)
- current[a_state] = 4 -- isol
+ current[a_state] = s_isol
first, last = nil, nil
elseif not first then
if isol_fina_medi_init[char] then
- current[a_state] = 1 -- init
+ current[a_state] = s_init
first, last = first or current, current
elseif isol_fina[char] then
- current[a_state] = 4 -- isol
+ current[a_state] = s_isol
first, last = nil, nil
else -- no arab
first, last = finish(first,last)
end
elseif isol_fina_medi_init[char] then
first, last = first or current, current
- current[a_state] = 2 -- medi
+ current[a_state] = s_medi
elseif isol_fina[char] then
- if not last[a_state] == 1 then
+ if not last[a_state] == s_init then
-- tricky, we need to check what last may be !
- last[a_state] = 2 -- medi
+ last[a_state] = s_medi
end
- current[a_state] = 3 -- fina
+ current[a_state] = s_fina
first, last = nil, nil
elseif char >= 0x0600 and char <= 0x06FF then
- current[a_state] = 6 -- rest
+ current[a_state] = s_rest
first, last = finish(first,last)
else --no
first, last = finish(first,last)
@@ -11347,7 +11367,7 @@ end)
-- fonts.hashes.lookups = lookuphashes
-local constants = fonts.analyzers.constants
+local autofeatures = fonts.analyzers.features -- was: constants
local function initialize(sequence,script,language,enabled)
local features = sequence.features
@@ -11357,7 +11377,7 @@ local function initialize(sequence,script,language,enabled)
if valid then
local languages = scripts[script] or scripts[wildcard]
if languages and (languages[language] or languages[wildcard]) then
- return { valid, constants[kind] or false, sequence.chain or 0, kind, sequence }
+ return { valid, autofeatures[kind] or false, sequence.chain or 0, kind, sequence }
end
end
end