summaryrefslogtreecommitdiff
path: root/tex/context/base/core-buf.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/core-buf.tex')
-rw-r--r--tex/context/base/core-buf.tex321
1 files changed, 164 insertions, 157 deletions
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
index 46db44213..bb08de0cf 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -129,7 +129,12 @@
\unprotect
-\def\resetbuffer%
+% more accurate
+%
+% \@EA\convertcommand\csname\e!start\e!buffer\endcsname\to\beginofblock % else a space
+% \@EA\convertcommand\csname\e!stop\e!buffer \endcsname\to\endofblock
+
+\def\resetbuffer
{\dosingleempty\doresetbuffer}
\def\doresetbuffer[#1]%
@@ -146,43 +151,42 @@
%D For Willy's nested commented buffers, we need the \type
%D {\delcharacter} trick.
-% \def\processnextbufferline#1#2#3%
-% {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
-% \convertargument#1 \to\next
-% \doifinstringelse{\delcharacter\texcommentsymbol}{\delcharacter\next}
-% {\def\next{#3}}
-% {\doifinstringelse{\endofblock}{\next}
-% {\ifnum\nestedbufferlevel=0\relax % \relax ?
-% \def\next{#2}%
-% \else
-% \decrement\nestedbufferlevel\relax
-% \def\next{#3}%
-% \fi}
-% {\doifinstringelse{\beginofblock}{\next}
-% {\increment\nestedbufferlevel\relax
-% \def\next{#3}}
-% {\def\next{#3}}}}%
-% \next}
-
-\def\processnextbufferline#1% needs testing ! ! ! !
+%\def\processnextbufferline#1% needs testing ! ! ! !
+% {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
+% \convertargument#1 \to\next
+% \doifinstringelse{\delcharacter\texcommentsymbol}{\delcharacter\next}
+% {\let\next\secondoftwoarguments}
+% {\doifincsnameelse\endofblock\next
+% {\ifnum\nestedbufferlevel=\zerocount
+% \let\next\firstoftwoarguments
+% \else
+% \decrement\nestedbufferlevel\relax
+% \let\next\secondoftwoarguments
+% \fi}
+% {\doifincsnameelse\beginofblock\next
+% {\increment\nestedbufferlevel\relax
+% \let\next\secondoftwoarguments}
+% {\let\next\secondoftwoarguments}}}%
+% \next}
+
+\long\def\processnextbufferline#1%
{\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
\convertargument#1 \to\next
\doifinstringelse{\delcharacter\texcommentsymbol}{\delcharacter\next}
- {\let\next\secondoftwoarguments}
- {\doifincsnameelse{\endofblock}{\next}
- {\ifnum\nestedbufferlevel=0
- \let\next\firstoftwoarguments
+ {\secondoftwoarguments}
+ {\doifincsnameelse\endofblock\next
+ {\ifnum\nestedbufferlevel=\zerocount
+ \expandafter\firstoftwoarguments
\else
\decrement\nestedbufferlevel\relax
- \let\next\secondoftwoarguments
+ \expandafter\secondoftwoarguments
\fi}
- {\doifincsnameelse{\beginofblock}{\next}
+ {\doifincsnameelse\beginofblock\next
{\increment\nestedbufferlevel\relax
- \let\next\secondoftwoarguments}
- {\let\next\secondoftwoarguments}}}%
- \next}
+ \secondoftwoarguments}
+ {\secondoftwoarguments}}}}
-\def\dostartbuffer%
+\def\dostartbuffer
{\bgroup
\obeylines % nodig, anders gaat 't fout als direct \starttabel (bv)
\doquadrupleempty\dodostartbuffer}
@@ -196,17 +200,16 @@
\next}
\def\dododostartbuffer[#1][#2][#3][#4]%
- {%\showmessage{\m!systems}{15}{#2}%
- \doifelsevalue{\??bu#1\c!alinea}{\v!ja}
+ {%\showmessage\m!systems{15}{#2}%
+ \doifelsevalue{\??bu#1\c!alinea}\v!ja
{\segmentatebuffertrue}
{\doifnumberelse{\getvalue{\??bu#1\c!alinea}}
- {\segmentatebuffertrue}
- {\segmentatebufferfalse}}%
+ \segmentatebuffertrue\segmentatebufferfalse}%
\doifelse{#4}{}
{\letbeundefined{\e!stop\e!buffer}% % \let\stopbuffer=\relax % \undefined
\@EA\@EA\@EA\convertargument\@EA\e!start\e!buffer\to\beginofblock % else a space
\@EA\@EA\@EA\convertargument\@EA\e!stop\e!buffer\to\endofblock
- \let\processnextblockline=\processnextbufferline}
+ \let\processnextblockline\processnextbufferline}
{\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
\@EA\convertargument\csname#3\endcsname\to\beginofblock
\@EA\convertargument\csname#4\endcsname\to\endofblock}%
@@ -219,7 +222,7 @@
\getvalue{#4}}%
\doifelsenothing{#2}
{\message{<\TEXbufferfile{\jobname}>}%
- \immediate\openout\tmpblocks\TEXbufferfile{\jobname}}
+ \immediate\openout\tmpblocks\TEXbufferfile\jobname}
{\message{<\TEXbufferfile{#2}>}%
\immediate\openout\tmpblocks\TEXbufferfile{#2}}%
\ifsegmentatebuffer
@@ -234,7 +237,7 @@
% \setbuffer[name]#2\endbuffer : saves to file #1.tmp
-\def\setbuffer[#1]#2\endbuffer%
+\def\setbuffer[#1]#2\endbuffer
{\immediate\openout\tmpblocks=\TEXbufferfile{#1}%
\convertargument#2\to\ascii
\immediate\write\tmpblocks{\ascii}%
@@ -242,17 +245,17 @@
\def\dobuffer#1[#2]#3%
{\def\dodobuffer##1%
- {%\showmessage{\m!systems}{#1}{##1}%
+ {%\showmessage\m!systems{#1}{##1}%
\beginrestorecatcodes
\doifdefinedelse{\??bu##1\c!nummer}
- {#3{\TEXbufferfile{def-\getvalue{\??bu##1\c!nummer}}}{}{}}
- {#3{\TEXbufferfile{##1}}{}{}}%
+ {#3{\TEXbufferfile{def-\getvalue{\??bu##1\c!nummer}}}\donothing\donothing}
+ {#3{\TEXbufferfile{##1}}\donothing\donothing}%
\endrestorecatcodes}%
\doifelsenothing{#2}
{\dodobuffer\jobname}
{\processcommalist[#2]\dodobuffer}}
-\def\processTEXbuffer%
+\def\processTEXbuffer
{\dodoubleempty\doprocessTEXbuffer}
\def\doprocessTEXbuffer[#1][#2]%
@@ -270,7 +273,7 @@
\let\getbuffer \processTEXbuffer % handy
\let\haalbuffer\processTEXbuffer % will move to mult-com.tex
-\def\typebuffer%
+\def\typebuffer
{\dodoubleempty\dotypebuffer}
\def\dotypebuffer[#1][#2]%
@@ -280,7 +283,7 @@
\dobuffer{17}[#2]\typefile
\fi}
-\def\stelbufferin%
+\def\stelbufferin
{\dodoubleempty\dostelbufferin}
\def\dostelbufferin[#1][#2]%
@@ -293,8 +296,8 @@
\def\dodefinieerbuffer[#1]%
{\iffirstargument % else problems
\doglobal\increment\nofdefinedbuffers
- \setevalue{\??bu#1\c!nummer}{\nofdefinedbuffers}%
- \setvalue {\??bu#1\c!alinea}{\v!nee}%
+ \letvalue{\??bu#1\c!nummer}\nofdefinedbuffers
+ \letvalue{\??bu#1\c!alinea}\v!nee
\setevalue{\e!start#1}%
{\noexpand\dostartbuffer[#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
\setevalue{\e!haal#1}%
@@ -303,9 +306,32 @@
{\noexpand\dodotypebuffer[#1][def-\nofdefinedbuffers]}%
\fi}
-\def\definieerbuffer%
+\def\definieerbuffer
{\dosingleargument\dodefinieerbuffer}
+% yet another undocumented feature, but who cares:
+
+\let\startfilebuffer\startbuffer
+
+\def\usememorybuffers{\let\startbuffer\startmemorybuffer}
+\def\usefilebuffers {\let\startbuffer\startfilebuffer}
+
+\def\startmemorybuffer
+ {\dosingleempty\dostartmemorybuffer}
+
+\long\def\dostartmemorybuffer[#1]#2\stopbuffer
+ {\setbuffer[\iffirstargument#1\else\jobname\fi]#2\endbuffer}
+
+% \long\def\startcrap#1\stopcrap
+% {\usememorybuffers#1\usefilebuffers} % or {{...}}
+%
+% \startcrap
+% \startbuffer
+% some awful code
+% \stopbuffer
+% \placefigure{crap}{\getbuffer}
+% \stopcrap
+
% TODO: no grouping due to sidefloats
\expandafter \convertargument \gobbleoneargument @ \to \emptybufferline
@@ -320,20 +346,20 @@
\newcount\currentbufferparagraph
-\def\getbufferparagraphs%
+\def\getbufferparagraphs
{\dodoubleempty\dogetbufferparagraphs}
\def\dosetbufferoffset#1%
{\doifnumberelse{\getvalue{\??bu#1\c!alinea}}
- {\currentbufferparagraph=-\getvalue{\??bu#1\c!alinea}}
- {\currentbufferparagraph=0}%
+ {\currentbufferparagraph-\getvalue{\??bu#1\c!alinea}}
+ {\currentbufferparagraph \zerocount}%
\relax}
\def\dogetbufferparagraphs[#1][#2]%
{\iffirstargument
\ifsecondargument
\dosetbufferoffset{#1}%
- \doifelse{#2}{\v!alles}
+ \doifelse{#2}\v!alles
{\def\startbufferparagraph{\normalbufferparagraph{#1}}}
{\def\startbufferparagraph{\filterbufferparagraph{#1}{#2}}}%
\def\stopbufferparagraph{\dostopbufferparagraph{#1}}%
@@ -361,17 +387,17 @@
\def\dostartbufferparagraph#1%
{\par\getvalue{\??bu#1\c!voor}}
-\def\normalbufferparagraph%
- {\advance\currentbufferparagraph 1
- \ifnum\currentbufferparagraph>0
+\def\normalbufferparagraph
+ {\advance\currentbufferparagraph \plusone
+ \ifnum\currentbufferparagraph>\zerocount
\expandafter\dostartbufferparagraph
\else
\expandafter\gobbleoneargument
\fi}
\def\filterbufferparagraph#1#2%
- {\advance\currentbufferparagraph 1
- \ifnum\currentbufferparagraph>0
+ {\advance\currentbufferparagraph \plusone
+ \ifnum\currentbufferparagraph>\zerocount
\doifinsetelse{\the\currentbufferparagraph}{#2}
{\let\next\dostartbufferparagraph}
{\let\next\fakebufferparagraph}%
@@ -380,48 +406,35 @@
\fi
\next{#1}}
-\long\def\gobblebufferparagraph#1#2\stopbufferparagraph%
+\long\def\gobblebufferparagraph#1#2\stopbufferparagraph
{}
\def\fakebufferparagraph#1%
{\bgroup
\def\stopbufferparagraph{\dostopbufferparagraph{#1}\egroup\egroup}%
- \setbox\scratchbox=\vbox\bgroup\dostartbufferparagraph{#1}}
+ \setbox\scratchbox\vbox\bgroup\dostartbufferparagraph{#1}}
\def\blockversion {1996.03.10}
\def\@@blockerrormessage%
- {\showmessage{\m!textblocks}{1}{}%
- \global\let\@@blockerrormessage=\relax}
+ {\showmessage\m!textblocks1\empty
+ \global\let\@@blockerrormessage\relax}
\def\thisisblockversion#1%
- {\doifnot{\blockversion}{#1}%
- {\@@blockerrormessage\endinput}}
+ {\doifnot\blockversion{#1}{\@@blockerrormessage\endinput}}
-\def\stopcopyingblocks%
+\def\stopcopyingblocks
{\ifcopyingblocks
\immediate\closeout\outblocks
\copyblockfile
\global\copyingblocksfalse
\fi}
-% \def\dodosetblockcounters[#1:#2]#3%
-% {\setvalue{\??se\s!old#3}{#1}%
-% \doifnot{#3}{\lastsection}
-% {\dodosetblockcounters[#2:0]{\getvalue{\??se#3\c!na}}}}
-%
-% \def\dosetblockcounters[#1#2::#3]%
-% {\ifblockpermitted
-% \dodosetblockcounters[#3:0]\firstsection
-% \setsectiontype[#1]%
-% \def\@@sectionvalue##1{\getvalue{\??se\s!old##1}}%
-% \def\@@sectionconversion##1##2{##2}% to get rid of {##2}
-% \fi}
-
\def\dodosetblockcounters[#1]#2%
{\expanded{\setvalue{\??se\s!old#2}{\@@filterheadpart[#1]}}%
- \doifnot{#2}{\lastsection}
- {\expanded{\dodosetblockcounters[\@@filtertailpart[#1]]}{\getvalue{\??se#2\c!na}}}}
+ \doifnot{#2}\lastsection
+ {\expanded{\dodosetblockcounters[\@@filtertailpart[#1]]}%
+ {\getvalue{\??se#2\c!na}}}} % ????
\def\dosetblockcounters[#1]%
{\ifblockpermitted
@@ -433,26 +446,19 @@
\let\blockstatus\empty
-\def\setblockcounters%
+\def\setblockcounters
{\ifx\blockstatus\empty \else
\@EA\dosetblockcounters\@EA[\blockstatus]%
\fi}
-%\def\getblockstatus#1%
-% {\dosetblklevel{\getvalue{\??by\@@bscriterium}}%
-% \doifblklevelelse[#1]
-% {\global\blockpermittedtrue}
-% {\global\blockpermittedfalse}%
-% \def\blockstatus{#1}}
-
-\def\getblockstatus#1%
- {\dosetblklevel{\getvalue{\??by\@@bscriterium}}%
+\def\getblockstatus#1% is this still ok
+ {\dosetfilterlevel{\getvalue{\??by\@@bscriterium}}\empty
\expanded{\doifblklevelelse[#1\sectionseparator\sectionseparator0]}
{\global\blockpermittedtrue}
{\global\blockpermittedfalse}%
\def\blockstatus{#1}}
-\def\setupblockparameters%
+\def\setupblockparameters
{\dodoubleargument\dosetupblockparameters}
\def\dosetupblockparameters[#1][#2]%
@@ -461,14 +467,14 @@
\beginTEX
\def\blockparameter#1#2%
- {\csname\@EA\ifx\csname\??tb#1#2\endcsname\relax empty\else\??tb#1#2\fi\endcsname}
+ {\csname\@EA\ifx\csname\??tb#1#2\endcsname\relax\s!empty\else\??tb#1#2\fi\endcsname}
\endTEX
\beginETEX \ifcsname
\def\blockparameter#1#2%
- {\@EA\csname\ifcsname\??tb#1#2\endcsname\??tb#1#2\else empty\fi\endcsname}
+ {\@EA\csname\ifcsname\??tb#1#2\endcsname\??tb#1#2\else\s!empty\fi\endcsname}
\endETEX
@@ -493,13 +499,13 @@
% oeps, got bugged
\def\setblocklevel#1% sign
- {\global\advance\blocklevel by #11
+ {\global\advance\blocklevel #11
\ifcase\blocklevel\doingblocksfalse\else\doingblockstrue\fi}
-\def\opentmpblock%
+\def\opentmpblock
{\immediate\openout\tmpblocks=\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
-\def\closetmpblock%
+\def\closetmpblock
{\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
\immediate\closeout\tmpblocks}
@@ -521,10 +527,10 @@
\immediate\write\tmpblocks{\string#1}}%
\fi}
-\def\startcopyingblocks%
+\def\startcopyingblocks
{\global\copyingblocksfalse}
-\def\checkcopyingblocks%
+\def\checkcopyingblocks
{\ifcopyingblocks
\else
\immediate\openout\outblocks\f!utilityfilename.\f!blockextension
@@ -533,21 +539,21 @@
\global\copyingblockstrue
\fi}
-\def\stopcopyingblocks%
+\def\stopcopyingblocks
{\ifcopyingblocks
\immediate\closeout\outblocks
\copyblockfile
\global\copyingblocksfalse
\fi}
-\def\geenblokkenmeer%
+\def\geenblokkenmeer
{\stopcopyingblocks}
\def\copyblockfile
{\ifcopyingblocks
\begingroup
- \showmessage{\m!textblocks}{2}{\jobname.\f!blockextension}%
- \openlocin{\inpblocks}{\f!utilityfilename.\f!blockextension}%
+ \showmessage\m!textblocks2{\jobname.\f!blockextension}%
+ \openlocin\inpblocks{\f!utilityfilename.\f!blockextension}%
\immediate\openout\outblocks\jobname.\f!blockextension
\setupcopyblock
\catcode`\^^M=\@@ignore\relax
@@ -565,26 +571,26 @@
\def\loadallblocks#1%
{\beginrestorecatcodes
-\catcode`\^^M=\@@endofline\relax
+ \catcode`\^^M=\@@endofline\relax
\readjobfile{#1.\f!blockextension}
- {\showmessage{\m!textblocks}{3}{#1.\f!blockextension}}
- {\showmessage{\m!textblocks}{4}{}}%
+ {\showmessage\m!textblocks3{#1.\f!blockextension}}
+ {\showmessage\m!textblocks4\empty}%
\endrestorecatcodes}
-\def\setupcopyblock%
- {\makeallother % \dostepwiserecurse{1}{255}{1}{\catcode\recurselevel=\@@other}%
+\def\setupcopyblock
+ {\makeallother
\obeylines}
-\def\writeoutblocks%
+\def\writeoutblocks
{\immediate\write\outblocks}
% readable
%
% \def\processnextblocklineAB#1#2#3%
% {\convertargument#1 \to\next
-% \doifinstringelse{\endofblockA}{\next}
+% \doifinstringelse\endofblockA\next
% {\def\next{#2}}
-% {\doifinstringelse{\endofblockB}{\next}
+% {\doifinstringelse\endofblockB\next
% {\def\next{#2}}
% {\def\next{#3}}}%
% \next}
@@ -598,7 +604,7 @@
%
% even more
-\def\processnextblocklineAB#1% #2#3%
+\long\def\processnextblocklineAB#1% #2#3%
{\convertargument#1 \to\next
\doifinstringelse\endofblockA\next
\firstoftwoarguments
@@ -634,7 +640,7 @@
%
% faster
-\def\processnextblockline#1% #2#3%
+\long\def\processnextblockline#1% #2#3%
{\convertargument#1 \to\next
\ifx\next\emptybufferline
\ifsegmentatebuffer \emptybufferlinetrue \fi
@@ -663,15 +669,15 @@
\def\skipblock#1%
{\checkcopyingblocks
\@EA\convertargument\string\thiswasblock{#1}\to\endofblock
-%testen : \expanded{\convertargument\string\thiswasblock{#1}\noexpand\to\noexpand\endofblock}%
- \let\openblock=\begingroup
- \let\closeblock=\endgroup
+ %testen : \expanded{\convertargument\string\thiswasblock{#1}\noexpand\to\noexpand\endofblock}%
+ \let\openblock\begingroup
+ \let\closeblock\endgroup
\openblock
\setupcopyblock
\skipblockline}
-\def\doafterblock#1#2{}
-\def\dobeforeblock#1#2{}
+\let\doafterblock \gobbletwoarguments
+\let\dobeforeblock\gobbletwoarguments
\def\thisisblock#1%
{\executeifdefined{\s!thisisblock#1}{\skipblock{#1}}}
@@ -683,16 +689,16 @@
{\checkcopyingblocks
\obeylines
\@EA\@EA\@EA\convertargument\@EA\string\csname\e!eindvan#1\endcsname\to\endofblockA
-%testen: \expanded{\convertargument\string\csname\e!eindvan#1\endcsname\to\endofblockA}%
+ %testen: \expanded{\convertargument\string\csname\e!eindvan#1\endcsname\to\endofblockA}%
\@EA\convertargument\string\eindvanblok[#1]\to\endofblockB % MULTI LINGUAL MAKEN
- \def\openblock%
+ \def\openblock
{\dobeforeblock{#1}{#2}%
\opentmpblock
\begingroup
\makesectionformat
\immediate\write\outblocks{}%
\immediate\write\outblocks{\string\thisisblock{#1}{\sectionformat}[#2]}}%
- \def\closeblock%
+ \def\closeblock
{\immediate\write\outblocks{}% handig voor \par commando's
\immediate\write\outblocks{\string\thiswasblock{#1}}%
\endgroup
@@ -703,16 +709,16 @@
\setupcopyblock
\copyblocklineAB}
-\def\copyblock%
+\def\copyblock
{\let\opentmpblock\empty
\let\closetmpblock\empty
\let\writetmpblock\gobbleoneargument
\saveblock}
-\def\loadoneblock%
+\def\loadoneblock
{\edef\blockfilename{\TEXbufferfile{\f!utilityfilename\the\blocklevel}}%
\setblocklevel+%
- \readjobfile{\blockfilename}{}{}%
+ \readjobfile\blockfilename\donothing\donothing
\setblocklevel-}%
\def\dodefinieerblok[#1]%
@@ -726,13 +732,13 @@
\c!letter=,
\c!file=\jobname]}
-\def\definieerblok%
+\def\definieerblok
{\dosingleargumentwithset\dodefinieerblok}
\def\dostelblokin[#1][#2]%
{\getparameters[\??tb#1][#2]}
-\def\stelblokin%
+\def\stelblokin
{\dodoubleargumentwithset\dostelblokin}
\def\passeerblok[#1]%
@@ -741,9 +747,8 @@
\def\doverbergblok[#1][#2][#3]%
{\doifassignmentelse{#3}
- {\def\next{\dodoverbergblok[#1][#2][][#3]}}
- {\def\next{\dodoverbergblok[#1][#2][#3][]}}%
- \next}
+ {\dodoverbergblok[#1][#2][][#3]}
+ {\dodoverbergblok[#1][#2][#3][]}}
\def\dodoverbergblok[#1][#2][#3][#4]%
{\doifelsenothing{#2}
@@ -758,8 +763,8 @@
{\global\blockpermittedtrue
\edef\bloktitel{#1:#3}}}}%
\ifblockpermitted
- \showwarning{\m!textblocks}{5}{\bloktitel}%
- \def\next%
+ \showwarning\m!textblocks5\bloktitel
+ \def\next
{\def\dobeforeblock####1####2%
{\begingroup}%
\def\doafterblock####1####2%
@@ -768,20 +773,20 @@
\saveblock{#1}{#3#4}}%
\else
\doifinsetelse{+}{#3}
- {\showwarning{\m!textblocks}{6}{\bloktitel}%
- \def\next%
+ {\showwarning\m!textblocks6\bloktitel
+ \def\next
{\def\dobeforeblock####1####2%
{\begingroup
\global\visiblefalse}%
\def\doafterblock####1####2%
- {{\setbox0=\vbox
+ {{\setbox0\vbox
{\catcode`\^^M=\@@endofline\relax
\loadoneblock
\par}}%
\endgroup}%
\saveblock{#1}{#3#4}}}%
- {\showwarning{\m!textblocks}{7}{\bloktitel}%
- \def\next%
+ {\showwarning\m!textblocks7\bloktitel
+ \def\next
{\def\dobeforeblock####1####2%
{\begingroup
\globaldefs=-1\relax}%
@@ -797,7 +802,7 @@
{\bgroup\obeylines\dotripleempty\doverbergblok[##1][#2]}}%
\processcommalist[#1]\docommando}
-\def\verbergblokken%
+\def\verbergblokken
{\dodoubleempty\doverbergblokken}
\def\doexecuteloadedblock#1#2%
@@ -805,20 +810,20 @@
\bgroup % before \c!voor (think of: \c!voor=\startitemize)
\dosetupblockparameters[#1][#2]% voor 'voor'?
\getvalue{\??tb#1\c!voor}%
- \doattributes{\??tb#1}\c!letter\c!kleur{}%
+ \dostartattributes{\??tb#1}\c!letter\c!kleur\empty
\visibletrue
\catcode`\^^M=\@@endofline\relax
\getvalue{\??tb#1\c!binnen}%
\loadoneblock
\par
+ \dostopattributes
\getvalue{\??tb#1\c!na}
\egroup}
\def\dohandhaafblok[#1][#2][#3]%
{\doifassignmentelse{#3}
- {\def\next{\dodohandhaafblok[#1][#2][][#3]}}
- {\def\next{\dodohandhaafblok[#1][#2][#3][]}}%
- \next}
+ {\dodohandhaafblok[#1][#2][][#3]}
+ {\dodohandhaafblok[#1][#2][#3][]}}
\def\dodohandhaafblok[#1][#2][#3][#4]%
{\doifelsenothing{#2}
@@ -827,25 +832,25 @@
{\doifcommonelse{#2}{#3}
{\global\blockpermittedtrue
\edef\bloktitel{#1:#2}}
- {\doifinsetelse{\v!alles}{#2}
- {\doifelse{#3}{}
+ {\doifinsetelse\v!alles{#2}
+ {\doifelsenothing{#3}
{\global\blockpermittedtrue
\edef\bloktitel{#1}}
{\global\blockpermittedfalse
\edef\bloktitel{#1:#3}}}
{\global\blockpermittedfalse
- \doifelse{#3}{}
+ \doifelsenothing{#3}
{\edef\bloktitel{#1}}
{\edef\bloktitel{#1:#3}}}}}%
\ifblockpermitted
- \showwarning{\m!textblocks}{8}{\bloktitel}%
+ \showwarning\m!textblocks8\bloktitel
\def\dobeforeblock##1##2%
{\begingroup}%
\def\doafterblock##1##2%
{\endgroup
\doexecuteloadedblock{#1}{#4}}%
\else
- \showwarning{\m!textblocks}{9}{\bloktitel}%
+ \showwarning\m!textblocks9\bloktitel
\fi
\saveblock{#1}{#3#4}}
@@ -891,36 +896,37 @@
\doifinset{-}{#3}{\settrue\dummyblockstatus}%
\fi
\ifconditional\dummyblockstatus
- \showwarning{\m!textblocks}{10}{\bloktitel}%
+ \showwarning\m!textblocks{10}\bloktitel
\setvalue{\s!thiswasblock#1}%
{\par
\egroup
\setblocklevel-}%
- \def\next%
- {\setbox0=\vbox\bgroup
+ \def\next
+ {\setbox0\vbox\bgroup
\ifconditional\blockassignmentstatus
\dosetupblockparameters[#1][#3]%
\fi}%
\else
- \showwarning{\m!textblocks}{11}{\bloktitel}%
+ \showwarning\m!textblocks{11}\bloktitel
\setvalue{\s!thiswasblock#1}%
{\par
+ \dostopattributes
\getvalue{\??tb#1\c!na}%
\egroup
\setblocklevel-}%
- \def\next%
+ \def\next
{\bgroup
\ifconditional\blockassignmentstatus
\dosetupblockparameters[#1][#3]%
\fi
\getvalue{\??tb#1\c!voor}%
- \doattributes{\??tb#1}\c!letter\c!kleur{}%
+ \dostartattributes{\??tb#1}\c!letter\c!kleur\empty
\visibletrue
\getvalue{\??tb#1\c!binnen}}%
\fi
\else
- \def\next%
- {\showwarning{\m!textblocks}{12}{\bloktitel}%
+ \def\next
+ {\showwarning\m!textblocks{12}\bloktitel
\skipblock{#1}}%
\fi
\next}
@@ -938,15 +944,15 @@
{\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
\endgroup}
-\def\dogebruikblokken%
+\def\dogebruikblokken
{\begingroup
\doassign[\??bs][\c!criterium=\v!alles]%
\dodoubleempty\dodogebruikblokken}
-\def\gebruikblokken%
+\def\gebruikblokken
{\setfalse\processblockstatus\dogebruikblokken}
-\def\verwerkblokken%
+\def\verwerkblokken
{\settrue \processblockstatus\dogebruikblokken}
\def\doselecteerblokken[#1][#2][#3]%
@@ -956,7 +962,7 @@
{\getparameters[\??bs][#3]%
\dogebruikblokken[#1][#2]}}%
-\def\selecteerblokken%
+\def\selecteerblokken
{\begingroup
\doassign[\??bs][\c!criterium=\v!alles]%
\dotripleempty\doselecteerblokken}
@@ -970,7 +976,8 @@
{\setblocklevel+\bgroup
\dodoubleempty\doforceerblok[##1]}%
\setvalue{\e!eindvan##1}%
- {\getvalue{\??tb##1\c!na}%
+ {\dostopattributes
+ \getvalue{\??tb##1\c!na}%
\egroup\setblocklevel-}}%
\processcommalist[#1]\docommando}
@@ -982,7 +989,7 @@
\dosetupblockparameters[#1][#2]%
\fi
\getvalue{\??tb#1\c!voor}%
- \doattributes{\??tb#1}\c!letter\c!kleur{}%
+ \dostartattributes{\??tb#1}\c!letter\c!kleur\empty
\getvalue{\??tb#1\c!binnen}}
\def\passeerblokken[#1]%
@@ -996,7 +1003,7 @@
\processcommalist[#1]\docommando}
\def\dopasseerblok[#1][#2]%
- {\def\closeblock%
+ {\def\closeblock
{\egroup\setblocklevel-}%
\checkcopyingblocks
\obeylines