diff options
author | Karl Berry <karl@freefriends.org> | 2024-03-18 19:59:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-03-18 19:59:21 +0000 |
commit | b834bf013732494b8dd4c8b2004c3eaf5f81b11f (patch) | |
tree | 260eb2ef1ab150b1ccd887e0e67b8b646c3c337c /Master/texmf-dist/tex/context/third | |
parent | a1a4ab361344cda5ca24dc9532de0c0a2b6761f2 (diff) |
advice (18mar24)
git-svn-id: svn://tug.org/texlive/trunk@70688 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/third')
-rw-r--r-- | Master/texmf-dist/tex/context/third/advice/t-advice.tex | 51 |
1 files changed, 39 insertions, 12 deletions
diff --git a/Master/texmf-dist/tex/context/third/advice/t-advice.tex b/Master/texmf-dist/tex/context/third/advice/t-advice.tex index 503c3b7743a..3e969bd8ca8 100644 --- a/Master/texmf-dist/tex/context/third/advice/t-advice.tex +++ b/Master/texmf-dist/tex/context/third/advice/t-advice.tex @@ -27,11 +27,11 @@ %% (<texmf>/doc/generic/advice/)FILES. %D \module[ %D file=t-advice.tex, -%D version=1.1.0, +%D version=1.1.1, %D title=Advice, %D subtitle=Extend commands and environments, %D author=Saso Zivanovic, -%D date=2024-01-02, +%D date=2024-03-15, %D copyright=Saso Zivanovic, %D license=LPPL, %D ] @@ -116,7 +116,7 @@ }, run conditions/.default=\AdviceRuntrue, bailout handler/.default=\relax, - outer handler/.default=\advice@default@outer@handler, + outer handler/.default=\AdviceCollector, collector/.default=\advice@CollectArgumentsRaw, collector options/.value required, raw collector options/.value required, @@ -154,7 +154,7 @@ \def\advice@setup@init@common{% \def\AdviceRunConditions{\AdviceRuntrue}% \def\AdviceBailoutHandler{\relax}% - \def\AdviceOuterHandler{\advice@default@outer@handler}% + \def\AdviceOuterHandler{\AdviceCollector}% \def\AdviceCollector{\advice@CollectArgumentsRaw}% \def\AdviceCollectorOptions{}% \def\AdviceInnerHandler{\advice@error@noinnerhandler}% @@ -232,7 +232,7 @@ \ifcsname advice@o#1//\string#2\endcsname \expandonce{\csname advice@o#1//\string#2\expandafter\endcsname\expandafter}% \else - \expandafter\noexpand\expandafter#2% + \normalunexpanded\expandafter{\expandafter#2\expandafter}% \fi } \begingroup @@ -345,9 +345,6 @@ \expandafter\expandafter\expandafter{\expandafter\string\AdviceName}% } \newif\ifAdviceRun -\def\advice@default@outer@handler{% - \AdviceCollector -} \def\advice@CollectArgumentsRaw{% \AdviceIfArgs{}{% \expandafter\GetDocumentCommandArgSpec\expandafter{\AdviceName}% @@ -480,22 +477,52 @@ \noexpand\advice@trace{\space\space\space\space Raw options: \detokenize\expandafter{\AdviceRawCollectorOptions}}% + \normalunexpanded{% + \gdef\advice@collargs@return{0}% + \appto\AdviceRawCollectorOptions{\advice@remember@collargs@return}% + }% \expandonce\AdviceCollector }% - \edef\advice@inner@handler@trace##1{% + \edef\advice@inner@handler@trace@do{% \noexpand\advice@trace{\space\space Executing inner handler: \detokenize\expandafter{\AdviceInnerHandler}}% \noexpand\advice@trace{\space\space\space\space - Received arguments: - \noexpand\detokenize{##1}}% + Received arguments\noexpand\advice@inner@handler@trace@printcollargsreturn: + \noexpand\detokenize\noexpand\expandafter{\normalunexpanded{\the\toks0}}}% \noexpand\advice@trace{\space\space\space\space Options: \detokenize\expandafter{\AdviceOptions}}% - \expandonce{\AdviceInnerHandler}{##1}% + \expandonce{\AdviceInnerHandler}% }% \def\AdviceInnerHandler{\advice@inner@handler@trace}% } +\def\advice@remember@collargs@return{% + \global\let\advice@collargs@return\collargsReturn +} +\def\advice@inner@handler@trace{% + \ifnum\advice@collargs@return=0 + \expandafter\advice@inner@handler@trace@i + \else + \expandafter\advice@inner@handler@trace@ii + \fi +} +\def\advice@inner@handler@trace@i#1{% + \toks0={#1}% + \advice@inner@handler@trace@do{#1}% +} +\def\advice@inner@handler@trace@ii{% + \expandafter\toks\expandafter0\expandafter{\the\collargsArgs}% + \advice@inner@handler@trace@do +} +\def\advice@inner@handler@trace@printcollargsreturn{% + \ifnum\advice@collargs@return=0 + \else + \space(collargs return=% + \ifcase\advice@collargs@return braced\or plain\or no\fi + )% + \fi +} \stopmodule \protect \endinput |