summaryrefslogtreecommitdiff
path: root/tex/context/base/core-sys.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-01-12 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2005-01-12 00:00:00 +0100
commit0fece0253ad71930dc23890d1ae3e1f76b296acb (patch)
treeee4101915a66616c98023bf6456d5615817b0766 /tex/context/base/core-sys.tex
parent5604cb0a875f6114b67391fd279060678a9b7937 (diff)
downloadcontext-0fece0253ad71930dc23890d1ae3e1f76b296acb.tar.gz
stable 2005.01.12
Diffstat (limited to 'tex/context/base/core-sys.tex')
-rw-r--r--tex/context/base/core-sys.tex51
1 files changed, 29 insertions, 22 deletions
diff --git a/tex/context/base/core-sys.tex b/tex/context/base/core-sys.tex
index 9fc3f034b..459330694 100644
--- a/tex/context/base/core-sys.tex
+++ b/tex/context/base/core-sys.tex
@@ -234,43 +234,44 @@
\newif\ifforcefileexpansion % handy for document level overload
-% \def\convertexpanded#1#2#3% watch the double \v!ja expansion !
-% {\ExpandFirstAfter\processaction
-% [\ifforcefileexpansion\v!ja\else\getvalue{#1\c!expansie}\fi]
-% [ \v!ja=>{{\honorunexpanded
-% \dontexpandencoding % new
-% \xdef\@@globalexpanded{#2}%
-% \xdef\@@globalexpanded{\@@globalexpanded}}%
-% \convertcommand\@@globalexpanded\to#3},
-% \v!commando=>{\convertcommand #2\to#3},
-% \s!default=>{\convertargument#2\to#3},
-% \s!unknown=>{\convertargument#2\to#3}]}
-
-%D The next implementation is about 4 times as fast on an
-%D string of average length. Since this feature is used in
-%D XML processing, it made sense to support this faster
-%D alternative.
+%D The next implementation is about 4 times as faster than a
+%D processaction alternative on an string of average length.
+%D Since this feature is used in XML processing, it made sense
+%D to support this faster alternative. It's installable as well.
\def\installexpander#1{\setvalue{\s!do\c!expansion#1}}
+% \long\def\convertexpanded#1#2#3% hm, first we need to make sure
+% {\csname % that we assign all exp a value
+% \s!do\c!expansion
+% \ifforcefileexpansion
+% \v!yes
+% \else\@EA\ifx\csname\s!do\c!expansion\csname#1\c!expansion\endcsname\endcsname\relax
+% \s!default
+% \else
+% \csname#1\c!expansion\endcsname
+% \fi\fi
+% \endcsname#2\to#3}
+
\long\def\convertexpanded#1#2#3% hm, first we need to make sure
{\csname % that we assign all exp a value
\s!do\c!expansion
\ifforcefileexpansion
\v!yes
- \else\@EA\ifx\csname\s!do\c!expansion\csname#1\c!expansion\endcsname\endcsname\relax
+ \else\@EA\ifx\csname\s!do\c!expansion#1\endcsname\relax
\s!default
\else
- \csname#1\c!expansion\endcsname
+ #1%
\fi\fi
\endcsname#2\to#3}
-\installexpander\v!yes {\convertmeaning }
-\installexpander\v!yes {\convertmeaning }
\installexpander\v!command{\convertcommand }
-\installexpander\s!default {\convertargument}
-\installexpander\empty {\convertargument}
+\installexpander\s!default{\convertargument}
+\installexpander\empty {\convertargument}
\installexpander\v!no {\convertargument}
+\installexpander\v!yes {\convertmeaning }
+\installexpander\v!yes {\convertmeaning }
+\installexpander\v!strict {\reduceargument}
\def\convertmeaning#1\to % watch the double expansion !
{\bgroup
@@ -280,6 +281,12 @@
\xdef\@@globalexpanded{\@@globalexpanded}%
\egroup
\convertcommand\@@globalexpanded\to}
+
+\def\reduceargument#1\to#2%
+ {\begingroup
+ \reducetocoding[raw]%
+ \edef\ascii{#1}%
+ \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
% \setvalue{statevalue\v!stop }{0}
% \setvalue{statevalue\v!start }{1}