summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2009-09-13 14:24:00 +0200
committerHans Hagen <pragma@wxs.nl>2009-09-13 14:24:00 +0200
commited88828fa950808bd5335a7f3342263d4b6e381d (patch)
tree3081c5d9e93c500cbeef5f643d95c99f0004c291
parent423febe11aeeb079c8edfde2ea6e66c71709fc2f (diff)
downloadcontext-ed88828fa950808bd5335a7f3342263d4b6e381d.tar.gz
beta 2009.09.13 14:24
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-ini.mkii12
-rw-r--r--tex/context/base/font-ini.mkiv2
-rw-r--r--tex/context/base/font-xtx.mkii49
-rw-r--r--tex/context/base/m-translate.tex6
-rw-r--r--tex/context/base/strc-lst.lua2
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua2
8 files changed, 51 insertions, 26 deletions
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 59c58b5d4..76599f6d4 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2009.09.12 14:44}
+\newcontextversion{2009.09.13 14:24}
%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/context.tex b/tex/context/base/context.tex
index b4765d30d..0e8e16e7d 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2009.09.12 14:44}
+\edef\contextversion{2009.09.13 14:24}
%D For those who want to use this:
diff --git a/tex/context/base/font-ini.mkii b/tex/context/base/font-ini.mkii
index f614a07cd..9eb532d70 100644
--- a/tex/context/base/font-ini.mkii
+++ b/tex/context/base/font-ini.mkii
@@ -3163,12 +3163,14 @@
\def\definefontfeature
{\dotripleargument\dodefinefontfeature}
+\def\dododefinefontfeature#1%
+ {\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi\executeifdefined{\??fa#1}\empty}}
+
\def\dodefinefontfeature[#1][#2][#3]%
{\doifassignmentelse{#2}
{\setevalue{\??fa#1}{#2}}
{\let\!!stringa\empty
- \def\mkdodefinefontfeature##1{\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi##1}}%
- \processcommalist[#2]\mkdodefinefontfeature
+ \processcommalist[#2]\dododefinefontfeature
\setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}}
\definefontfeature
@@ -3185,11 +3187,15 @@
\definefontfeature % no calt
[arabic]
- [mode=node,language=dflt,script=arab,
+ [language=dflt,script=arab,
init=yes,medi=yes,fina=yes,isol=yes,
liga=yes,dlig=yes,rlig=yes,clig=yes,
mark=yes,mkmk=yes,kern=yes,curs=yes]
+\definefontfeature
+ [none]
+ [features=no]
+
%D The next auxilliary macro is an alternative to \type
%D {\fontname}.
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv
index 705cb12d2..91b789204 100644
--- a/tex/context/base/font-ini.mkiv
+++ b/tex/context/base/font-ini.mkiv
@@ -2750,7 +2750,7 @@
\definefontfeature
[none]
- [mode=none,features=off]
+ [mode=none,features=no]
\definefontfeature
[virtualmath]
diff --git a/tex/context/base/font-xtx.mkii b/tex/context/base/font-xtx.mkii
index 5f4b85879..d6086b44e 100644
--- a/tex/context/base/font-xtx.mkii
+++ b/tex/context/base/font-xtx.mkii
@@ -98,11 +98,14 @@
\fi
\fi\fi\fi}
+\newconditional\enabledfontfeatures
+
\def\checkfontfilename% -- todo: integrate so that we call do.. directly
{\expandafter\docheckfontfilename\fontfile*\empty*\relax}
\def\docheckfontfilename#1*#2#3*#4\relax % class overrules file
- {\edef\checkedfontfeatures
+ {\settrue\enabledfontfeatures
+ \edef\checkedfontfeatures
{\expandafter\ifx\csname\fontclass\s!features\endcsname\empty
\ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
\else\expandafter\ifx\csname\fontclass\s!features\endcsname\relax % redundant, will go away
@@ -121,33 +124,49 @@
\processcommacommand[\checkedfontfeatures]\doconvertfontfeatures % raw
\ifx\convertedfontfeatures\empty
\let\checkedfontfeatures\empty
- \else
+ \else\ifconditional\enabledfontfeatures
\edef\checkedfontfeatures{:\convertedfontfeatures}%
- \fi
+ \else
+ \let\checkedfontfeatures\empty
+ \fi\fi
\fi
\fi
\docheckfontfilenameprefix#1:\empty:\empty\relax
\doshowcheckedfontfeatures}
+\edef\@@fontfeaturesareno {features\v!no}
+\edef\@@fontfeaturesareoff{features\v!off}
+
\def\dodoconvertfontfeatures#1=#2#3=#4\relax
{\ifx#2\empty
% invalid feature
\else\ifcsname @xtx@#1@#2#3\endcsname
- \expandafter\ifx\csname @xtx@#1@#2#3\endcsname\empty\else
- \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}%
- \fi
+ \expandafter\ifx\csname @xtx@#1@#2#3\endcsname\empty\else
+ \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}%
+ \fi
\else
\edef\!!stringa{#1}%
\edef\!!stringb{#2#3}%
- \edef\convertedfontfeatures
- {\convertedfontfeatures
- \ifx\!!stringb\v!yes
- +\!!stringa
- \else\ifx\!!stringb\v!no
- -\!!stringa
- \else
- \!!stringa=\!!stringb
- \fi\fi;}%
+ \edef\!!stringc{#1#2#3}%
+ \ifx\!!stringc\@@fontfeaturesareoff
+ \setfalse\enabledfontfeatures
+ \else\ifx\!!stringc\@@fontfeaturesareno
+ \setfalse\enabledfontfeatures
+ \else
+ \edef\convertedfontfeatures
+ {\convertedfontfeatures
+ \ifx\!!stringb\v!yes
+ +\!!stringa
+ \else\ifx\!!stringb\v!on
+ +\!!stringa
+ \else\ifx\!!stringb\v!no
+ -\!!stringa
+ \else\ifx\!!stringb\v!off
+ -\!!stringa
+ \else
+ \!!stringa=\!!stringb
+ \fi\fi\fi\fi;}%
+ \fi\fi
\fi\fi}
\def\doconvertfontfeatures#1%
diff --git a/tex/context/base/m-translate.tex b/tex/context/base/m-translate.tex
index a9601bdd5..9c550eca7 100644
--- a/tex/context/base/m-translate.tex
+++ b/tex/context/base/m-translate.tex
@@ -44,14 +44,14 @@
end
function translators.reset(s)
- resolvers.filters.user_translator = nil
+ resolvers.install_text_filter("user",nil)
list, compiled = nil, nil
end
function translators.enable(s)
- resolvers.filters.user_translator = translators.translate
+ resolvers.install_text_filter("user",translators.translate)
end
function translators.disable(s)
- resolvers.filters.user_translator = nil
+ resolvers.install_text_filter("user",nil)
end
\stopluacode
diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua
index e48138166..c29069121 100644
--- a/tex/context/base/strc-lst.lua
+++ b/tex/context/base/strc-lst.lua
@@ -13,7 +13,7 @@ if not modules then modules = { } end modules ['strc-lst'] = {
local format, tonumber = string.format, tonumber
local texsprint, texprint, texwrite, texcount = tex.sprint, tex.print, tex.write, tex.count
-local insert, remove = table.insert, table.remove
+local concat, insert, remove = table.concat, table.insert, table.remove
local trace_lists = false trackers.register("structure.lists", function(v) trace_lists = v end)
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 59be57eff..8e8de0a3a 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
--- merge date : 09/12/09 14:46:27
+-- merge date : 09/13/09 14:26:14
do -- begin closure to overcome local limits and interference