summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/third
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-03-18 19:59:21 +0000
committerKarl Berry <karl@freefriends.org>2024-03-18 19:59:21 +0000
commitb834bf013732494b8dd4c8b2004c3eaf5f81b11f (patch)
tree260eb2ef1ab150b1ccd887e0e67b8b646c3c337c /Master/texmf-dist/tex/context/third
parenta1a4ab361344cda5ca24dc9532de0c0a2b6761f2 (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.tex51
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