summaryrefslogtreecommitdiff
path: root/tex/context/base/core-sys.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2002-01-11 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2002-01-11 00:00:00 +0100
commit736de6a312c37fbb8cea65cf0a86eda7dbbe0575 (patch)
treead6691db97ee31450f9ca5b30a90a22df067331b /tex/context/base/core-sys.tex
parent398264e8338d79fc389c76f0a1f0b30e4442f4e3 (diff)
downloadcontext-736de6a312c37fbb8cea65cf0a86eda7dbbe0575.tar.gz
stable 2002.01.11
Diffstat (limited to 'tex/context/base/core-sys.tex')
-rw-r--r--tex/context/base/core-sys.tex101
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}