diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-08-11 01:23:08 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2018-08-11 01:23:08 +0200 |
commit | 1ef7a093aaf03b6327b3da94d47f53760c868c60 (patch) | |
tree | 228e6d4a5005598aaea191b3317c2fa21e22de75 /tex/context/base/mkiv/strc-blk.mkiv | |
parent | b61d5dd3555e906b21601ff75b3268c0f359283e (diff) | |
download | context-1ef7a093aaf03b6327b3da94d47f53760c868c60.tar.gz |
2018-08-10 16:58:00
Diffstat (limited to 'tex/context/base/mkiv/strc-blk.mkiv')
-rw-r--r-- | tex/context/base/mkiv/strc-blk.mkiv | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/tex/context/base/mkiv/strc-blk.mkiv b/tex/context/base/mkiv/strc-blk.mkiv index 4d7437b37..724f7816c 100644 --- a/tex/context/base/mkiv/strc-blk.mkiv +++ b/tex/context/base/mkiv/strc-blk.mkiv @@ -34,15 +34,47 @@ \appendtoks \clf_definestructureblock{\currentblock}% - \setuevalue{\e!begin\currentblock}{\dotripleempty\strc_blocks_begin[\currentblock]}% + \setuevalue{\e!begin\currentblock}{\strc_blocks_begin{\currentblock}}% \letvalue {\e!end \currentblock}\donothing \to \everydefineblock -\unexpanded\def\strc_blocks_begin[#1][#2][#3]% - {\normalexpanded{\buff_pickup{\??block}{\e!begin#1}{\e!end#1}} +% The naive way: +% +% \unexpanded\def\strc_blocks_begin#1% +% {\dotripleempty\strc_blocks_begin_indeed[#1]} +% +% \unexpanded\def\strc_blocks_begin_indeed[#1][#2][#3]% +% {\normalexpanded{\buff_pickup{\??block}{\e!begin#1}{\e!end#1}} +% {}% +% {\clf_savestructureblock{#1}{#2}{#3}{\??block}}% +% \plusone}% +% +% We need to prevent too much lookahead which will gobble newlines +% that are needed for buffers. See blocks-002.tex as example. + +\let\m_block \empty +\let\m_subblock\empty + +\unexpanded\def\strc_blocks_begin#1% + {\edef\m_block {#1}% + \let \m_subblock\empty + \doifelsenextoptionalcs\strc_blocks_begin_yes\strc_blocks_begin_nop} + +\unexpanded\def\strc_blocks_begin_yes[#1]% + {\edef\m_subblock{#1}% + \doifelsenextoptionalcs\strc_blocks_begin_yes_yes\strc_blocks_begin_nop} + +\unexpanded\def\strc_blocks_begin_yes_yes[#1]% + {\strc_blocks_begin_indeed{#1}} + +\unexpanded\def\strc_blocks_begin_nop + {\strc_blocks_begin_indeed{}} + +\unexpanded\def\strc_blocks_begin_indeed#1% + {\normalexpanded{\buff_pickup{\??block}{\e!begin\m_block}{\e!end\m_block}}% {}% - {\clf_savestructureblock{#1}{#2}{#3}{\??block}}% - \plusone}% + {\clf_savestructureblock{\m_block}{\m_subblock}{#1}{\??block}}% + \plusone} \let\strc_blocks_setup\relax |