diff options
author | Hans Hagen <pragma@wxs.nl> | 2002-01-11 00:00:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2002-01-11 00:00:00 +0100 |
commit | 736de6a312c37fbb8cea65cf0a86eda7dbbe0575 (patch) | |
tree | ad6691db97ee31450f9ca5b30a90a22df067331b /tex/context/base/core-sys.tex | |
parent | 398264e8338d79fc389c76f0a1f0b30e4442f4e3 (diff) | |
download | context-736de6a312c37fbb8cea65cf0a86eda7dbbe0575.tar.gz |
stable 2002.01.11
Diffstat (limited to 'tex/context/base/core-sys.tex')
-rw-r--r-- | tex/context/base/core-sys.tex | 101 |
1 files changed, 78 insertions, 23 deletions
diff --git a/tex/context/base/core-sys.tex b/tex/context/base/core-sys.tex index bcc3f6173..942f0c310 100644 --- a/tex/context/base/core-sys.tex +++ b/tex/context/base/core-sys.tex @@ -15,11 +15,25 @@ \unprotect +\def\outputfilename{\@@svfile} +\def\inputfilename {\@@svinputfile} + +\def\splitjobfilename + {\edef\ascii{\inputfilename}\convertcommand\ascii\to\ascii + %\beforesplitstring\ascii\at.\to\jobfilename + %\aftersplitstring \ascii\at.\to\jobfilesuffix + \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix + \doifnothing\jobfilename {\let\jobfilename \jobname}% + \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}} + +\appendtoks \splitjobfilename \to \everyjob + \def\dosetupsystem[#1]% {\getparameters[\??sv][#1]% \setuprandomize[\@@svwillekeur]% \beforesplitstring\@@svresolutie\at dpi\to\@@svresolutie - \let\outputresolution=\@@svresolutie} + \let\outputresolution\@@svresolutie + \splitjobfilename} \def\setupsystem% {\dosingleargument\dosetupsystem} @@ -39,9 +53,6 @@ \nextrandom \egroup}} -\def\outputfilename{\@@svfile} -\def\inputfilename {\@@svinputfile} - \setupsystem [\c!gebied=, \c!resolutie=600dpi, @@ -79,7 +90,7 @@ \definecomplexorsimple\start \definecomplexorsimple\stop -\def\dodefinieerstartstop[#1][#2]% +\def\dododefinestartstop[#1][#2]% {\getparameters [\??be#1] [\c!voor=, @@ -87,8 +98,6 @@ \c!commandos=, \c!letter=, #2]% -% \setvalue{\e!stel#1\e!in}[##1]% -% {\dodoubleargument\getparameters[\??be##1]}% \unexpanded\setvalue{#1}% {\groupedcommand {\getvalue{\??be#1\c!commandos}% @@ -104,11 +113,19 @@ \egroup \getvalue{\??be#1\c!na}}} -\def\definieerstartstop% - {\dodoubleargument\dodefinieerstartstop} +\def\dodefinestartstop[#1][#2]% + {\def\docommando##1{\dododefinestartstop[##1][#2]}% + \processcommalist[#1]\docommando} + +\def\definestartstop + {\dodoubleargument\dodefinestartstop} -\def\stelstartstopin[#1]% - {\dodoubleargument\getparameters[\??be#1]} +\def\dosetupstartstop[#1][#2]% + {\def\docommando##1{\getparameters[\??be##1][#2]}% + \processcommalist[#1]\docommando} + +\def\setupstartstop + {\dodoubleargument\dosetupstartstop} % \docommando kan niet worden gebruikt omdat deze macro % soms lokaal wordt gebruikt @@ -161,25 +178,63 @@ \definecomplexorsimpleempty\definieer -\unexpanded\def\naam#1% +\unexpanded\def\naam#1% brrr {\getvalue{#1}} \def\gebruikcommandos#1% {\bgroup - \def\docommando##1% - {\setbox0=\hbox{\getvalue{\string##1}##1}}% + \def\docommando##1{\setbox0=\hbox{\getvalue{\string##1}##1}}% \processcommalist[#1]\docommando \egroup} -\def\convertexpanded#1#2#3% watch the double \v!ja expansion ! - {\ExpandFirstAfter\processaction - [\getvalue{#1\c!expansie}] - [ \v!ja=>{{\honorunexpanded\xdef\@@globalexpanded{#2}% - \xdef\@@globalexpanded{\@@globalexpanded}}% - \dodoglobal\convertcommand\@@globalexpanded\to#3}, - \v!commando=>{\dodoglobal\convertcommand #2\to#3}, - \s!default=>{\dodoglobal\convertargument#2\to#3}, - \s!unknown=>{\dodoglobal\convertargument#2\to#3}]} +\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. + +\def\installexpander#1{\setvalue{\s!do\c!expansie#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!expansie + \ifforcefileexpansion + \v!ja + \else\@EA\ifx\csname\s!do\c!expansie\csname#1\c!expansie\endcsname\endcsname\relax + \s!default + \else + \csname#1\c!expansie\endcsname + \fi\fi + \endcsname#2\to#3} + +\installexpander\v!ja {\convertmeaning } +\installexpander\v!ja {\convertmeaning } +\installexpander\v!commando{\convertcommand } +\installexpander\s!default {\convertargument} +\installexpander\empty {\convertargument} +\installexpander\v!nee {\convertargument} + +\def\convertmeaning#1\to % watch the double expansion ! + {\bgroup + \honorunexpanded + \dontexpandencoding % new + \xdef\@@globalexpanded{#1}% + \xdef\@@globalexpanded{\@@globalexpanded}% + \egroup + \convertcommand\@@globalexpanded\to} % \setvalue{statevalue\v!stop }{0} % \setvalue{statevalue\v!start }{1} |