diff options
author | Hans Hagen <pragma@wxs.nl> | 2005-01-12 00:00:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2005-01-12 00:00:00 +0100 |
commit | 0fece0253ad71930dc23890d1ae3e1f76b296acb (patch) | |
tree | ee4101915a66616c98023bf6456d5615817b0766 /tex/context/base/core-sys.tex | |
parent | 5604cb0a875f6114b67391fd279060678a9b7937 (diff) | |
download | context-0fece0253ad71930dc23890d1ae3e1f76b296acb.tar.gz |
stable 2005.01.12
Diffstat (limited to 'tex/context/base/core-sys.tex')
-rw-r--r-- | tex/context/base/core-sys.tex | 51 |
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} |