summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/core-sys.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/core-sys.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/core-sys.mkiv131
1 files changed, 79 insertions, 52 deletions
diff --git a/Master/texmf-dist/tex/context/base/core-sys.mkiv b/Master/texmf-dist/tex/context/base/core-sys.mkiv
index 649e5e65c9b..f61cabec3d2 100644
--- a/Master/texmf-dist/tex/context/base/core-sys.mkiv
+++ b/Master/texmf-dist/tex/context/base/core-sys.mkiv
@@ -35,20 +35,14 @@
%D End of lines to the output. \TEX\ will map this onto the platform specific
%D line ending. I hate this mess.
-%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
-\newlinechar=10 \edef\outputnewlinechar{^^J}
+\edef\operatingsystem {\ctxwrite {os.platform}}
-\edef\operatingsystem {\ctxlua{tex.write(os.platform)}}
-
-\def\jobfilename {\ctxlua{tex.sprint(tex.texcatcodes,environment.jobfilename or "")}}
-\def\jobfilesuffix {\ctxlua{tex.sprint(tex.texcatcodes,environment.jobfilesuffix or "")}}
-\def\inputfilebarename{\ctxlua{tex.sprint(tex.texcatcodes,environment.inputfilebarename or "")}}
-\def\inputfilesuffix {\ctxlua{tex.sprint(tex.texcatcodes,environment.inputfilesuffix or "")}}
-\def\inputfilename {\ctxlua{tex.sprint(tex.texcatcodes,environment.inputfilename or "")}}
-\def\outputfilename {\ctxlua{tex.sprint(tex.texcatcodes,environment.outputfilename or "")}}
-
-\def\initializenewlinechar
- {\bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup}
+\def \jobfilename {\ctxsprint{environment.jobfilename or ""}}
+\def \jobfilesuffix {\ctxsprint{environment.jobfilesuffix or ""}}
+\def \inputfilebarename{\ctxsprint{environment.inputfilebarename or ""}}
+\def \inputfilesuffix {\ctxsprint{environment.inputfilesuffix or ""}}
+\def \inputfilename {\ctxsprint{environment.inputfilename or ""}}
+\def \outputfilename {\ctxsprint{environment.outputfilename or ""}}
\newtoks \everysetupsystem
@@ -106,8 +100,6 @@
{\let\jobfullname\empty}
{\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
-\let\systemendofline\outputnewlinechar % will become obsolete
-
\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
%D There are a couple of system states avaiable:
@@ -150,7 +142,7 @@
\s!default=>\getnewrandomseed\scratchcounter,
\s!unknown=>\scratchcounter#1]%
\expanded{\setrandomseed{\the\scratchcounter}}%
- % \writestatus\m!systems{randomseed: \the\scratchcounter}%
+ % \writestatus\m!system{randomseed: \the\scratchcounter}%
\egroup}}
\setupsystem
@@ -194,44 +186,79 @@
\definecomplexorsimple\start
\definecomplexorsimple\stop
-\def\dododefinestartstop[#1][#2]% todo: use indirect commands
- {\getparameters
- [\??be#1]
- [\c!before=,
- \c!after=,
- \c!inbetween=,
- \c!commands=,
- \c!style=,
- #2]%
- \setuvalue{#1}%
- {\groupedcommand
- {\getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color}
- {\dostopattributes
- \getvalue{\??be#1\c!inbetween}}}%
- \setvalue{\e!start#1}%
- {\getvalue{\??be#1\c!before}%
- \bgroup
- \getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color\empty}%
- \setvalue{\e!stop#1}%
- {\dostopattributes
- \egroup
- \getvalue{\??be#1\c!after}}}
+% \def\dododefinestartstop[#1][#2]% todo: use indirect commands
+% {\getparameters
+% [\??be#1]
+% [\c!before=,
+% \c!after=,
+% \c!inbetween=,
+% \c!commands=,
+% \c!style=,
+% #2]%
+% \setuvalue{#1}%
+% {\groupedcommand
+% {\getvalue{\??be#1\c!commands}%
+% \dostarttagged\t!construct{#1}%
+% \dostartattributes{\??be#1}\c!style\c!color}
+% {\dostopattributes
+% \dostoptagged
+% \getvalue{\??be#1\c!inbetween}}}%
+% \setuvalue{\e!start#1}%
+% {\getvalue{\??be#1\c!before}%
+% \bgroup
+% \getvalue{\??be#1\c!commands}%
+% \dostarttagged\t!construct{#1}%
+% \dostartattributes{\??be#1}\c!style\c!color\empty}%
+% \setuvalue{\e!stop#1}%
+% {\dostopattributes
+% \dostoptagged
+% \egroup
+% \getvalue{\??be#1\c!after}}}
+%
+% \def\dodefinestartstop[#1][#2]%
+% {\def\docommand##1{\dododefinestartstop[##1][#2]}%
+% \processcommalist[#1]\docommand}
+%
+% \unexpanded\def\definestartstop
+% {\dodoubleargument\dodefinestartstop}
+%
+% \def\dosetupstartstop[#1][#2]%
+% {\def\docommand##1{\getparameters[\??be##1][#2]}%
+% \processcommalist[#1]\docommand}
+%
+% \unexpanded\def\setupstartstop
+% {\dodoubleargument\dosetupstartstop}
-\def\dodefinestartstop[#1][#2]%
- {\def\docommand##1{\dododefinestartstop[##1][#2]}%
- \processcommalist[#1]\docommand}
-\unexpanded\def\definestartstop
- {\dodoubleargument\dodefinestartstop}
+% \c!before \c!after \c!inbetween \c!commands \c!style \c!color
-\def\dosetupstartstop[#1][#2]%
- {\def\docommand##1{\getparameters[\??be##1][#2]}%
- \processcommalist[#1]\docommand}
+\installcommandhandler{\??be}{startstop}{\??be}
+
+\appendtoks
+ \normalexpanded{\dodefinestartstop{\currentstartstop}}%
+\to \everydefinestartstop
-\unexpanded\def\setupstartstop
- {\dodoubleargument\dosetupstartstop}
+\unexpanded\def\dodefinestartstop#1%
+ {\setuvalue{#1}%
+ {\groupedcommand
+ {\def\currentstartstop{#1}%
+ \startstopparameter\c!commands
+ \dostarttagged\t!construct\currentstartstop
+ \dosetstartstopattributes\c!style\c!color}
+ {\def\currentstartstop{#1}%
+ \dostoptagged
+ \startstopparameter\c!inbetween}}%
+ \setuvalue{\e!start#1}%
+ {\namedstartstopparameter{#1}\c!before
+ \bgroup
+ \def\currentstartstop{#1}%
+ \startstopparameter\c!commands
+ \dostarttagged\t!construct\currentstartstop
+ \dosetstartstopattributes\c!style\c!color}%
+ \setuvalue{\e!stop#1}%
+ {\dostoptagged
+ \egroup
+ \namedstartstopparameter{#1}\c!after}}
% \docommand kan niet worden gebruikt omdat deze macro
% soms lokaal wordt gebruikt
@@ -267,7 +294,7 @@
\def\complexdefine[#1]#2#3%
{\ifx#2\undefined
\else
- \showmessage\m!systems4{\string#2}%
+ \showmessage\m!system4{\string#2}%
\fi
\ifcase0#1\def#2{#3}%
\or\def#2##1{#3}%
@@ -350,7 +377,7 @@
% end
% \stopluacode
%
-% \unexpanded\def\define#1#{\ctxlua{commands.define([[\detokenize{#1}]])}}
+% \unexpanded\def\define#1#{\ctxcommand{define([[\detokenize{#1}]])}}
%
% \starttext
% \define[2]\whatevera{#1+#2}