[latex3-commits] [git/LaTeX3-latex3-latex2e] ProvideHook: Merge code for \hook_provide:n and \hook_provide_reversed:n (551e9f79)
PhelypeOleinik
phelype.oleinik at latex-project.org
Fri Apr 30 04:20:13 CEST 2021
Repository : https://github.com/latex3/latex2e
On branch : ProvideHook
Link : https://github.com/latex3/latex2e/commit/551e9f790c0206306aeb4e8415e8255f34fff590
>---------------------------------------------------------------
commit 551e9f790c0206306aeb4e8415e8255f34fff590
Author: PhelypeOleinik <phelype.oleinik at latex-project.org>
Date: Thu Apr 29 23:20:13 2021 -0300
Merge code for \hook_provide:n and \hook_provide_reversed:n
>---------------------------------------------------------------
551e9f790c0206306aeb4e8415e8255f34fff590
base/lthooks.dtx | 89 ++++++++++++----------------------
base/testfiles-lthooks/lthooks-029.tlg | 10 ++--
2 files changed, 37 insertions(+), 62 deletions(-)
diff --git a/base/lthooks.dtx b/base/lthooks.dtx
index f79494c1..e9aedd5a 100644
--- a/base/lthooks.dtx
+++ b/base/lthooks.dtx
@@ -2462,7 +2462,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\hook_provide:n,\@@_provide:n}
+% \begin{macro}{\hook_provide:n}
+% \begin{macro}{\hook_provide_reversed:n}
+% \begin{macro}{\@@_provide:n}
% The \cs{hook_provide:n} declaration declares a new hook and expects
% the hook \meta{name} as its argument, e.g.,
% \hook{begindocument}.
@@ -2473,70 +2475,41 @@
%
% \begin{macrocode}
\cs_new_protected:Npn \hook_provide:n #1
- { \@@_normalize_hook_args:Nn \@@_provide:n {#1} }
+ { \@@_normalize_hook_args:Nn \@@_provide:nn {#1} { } }
+\cs_new_protected:Npn \hook_provide_reversed:n #1
+ { \@@_normalize_hook_args:Nn \@@_provide:nn {#1} { - } }
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide:n #1
+\cs_new_protected:Npn \@@_provide:nn #1 #2
{
-% \end{macrocode}
-% We check if the hook was already \emph{explicitly} declared with
-% \cs{hook_new:n}, and if it already exists we complain, otherwise set
-% the \enquote{created} flag for the hook so that it errors next time
-% \cs{hook_new:n} is used.
-% \begin{macrocode}
\@@_if_disabled:nTF {#1}
- { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
- { \@@_if_declared:nTF {#1}
- {
- \@@_if_reversed:nT {#1}
- { \__kernel_msg_error:nnnnn { hooks } { provide-error }
- {#1} {normal} {reversed} }
- }
- {
- \tl_new:c { g_@@_#1_declared_tl }
- \@@_make_usable:n {#1}
- }
- }
+ { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
+ {
+ \@@_if_declared:nTF {#1}
+ {
+ \str_if_eq:eeF { \tl_use:c { g_@@_#1_reversed_tl } } {#2}
+ { \__kernel_msg_error:nnn { hooks } { provide-error } {#1} }
+ }
+ {
+ \tl_new:c { g_@@_#1_declared_tl }
+ \@@_make_usable:n {#1}
+ \tl_gset:cn { g_@@_#1_reversed_tl } {#2}
+ }
+ }
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
-%
-%
-% \begin{macro}{\hook_provide_reversed:n,\@@_provide_reversed:n}
-%
-% Declare a new hook. The default ordering of code chunks is
-% reversed, signaled by setting the token list to a minus sign.
-% \begin{macrocode}
-\cs_new_protected:Npn \hook_provide_reversed:n #1
- { \@@_normalize_hook_args:Nn \@@_provide_reversed:n {#1} }
-\cs_new_protected:Npn \@@_provide_reversed:n #1
- {
- \@@_if_disabled:nTF {#1}
- { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
- { \@@_if_declared:nTF {#1}
- {
- \@@_if_reversed:nF {#1}
- { \__kernel_msg_error:nnnnn { hooks } { provide-error }
- {#1} {reversed} {normal} }
- }
- {
- \@@_provide:n {#1}
- \tl_gset:cn { g_@@_#1_reversed_tl } { - }
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\hook_provide_pair:nn}
+% \begin{macro}{\hook_provide_pair:nn}
% A shorthand for providing a normal and a (matching) reversed hook in one go.
% \begin{macrocode}
\cs_new_protected:Npn \hook_provide_pair:nn #1#2
{ \hook_provide:n {#1} \hook_provide_reversed:n {#2} }
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%<latexrelease>\EndIncludeInRelease
@@ -2552,7 +2525,6 @@
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
-% \end{macro}
%
%
% \subsection{Parsing a label}
@@ -4678,19 +4650,22 @@
% \begin{macrocode}
\__kernel_msg_new:nnn { hooks } { provide-disabled }
{
- Can't~ provide~ hook~ #1~ as~ it~ was~ disabled!
+ Can't~ provide~ hook~ #1~ because~ it~ is~ disabled!
}
% \end{macrocode}
%
% \begin{macrocode}
\__kernel_msg_new:nnnn { hooks } { provide-error }
{
- Hook~ #1~ already~ declared~ as~ a~ #3~ hook!
+ Hook~ #1~ already~ declared~ as~ a~
+ \@@_if_reversed:nTF {#1} { reversed } { normal }~ hook!
}
{
- You~ attempted~ to~ provide~ the~ hook~ #1~ as~ #2~ hook,~ but~ it~
- was~ already~ previously~ declared~ as~ a~ #3~ hook.~
- A~ redeclaration~ is~ not~ possible.
+ You~ attempted~ to~ provide~ the~ hook~ #1~ as~ a~
+ \@@_if_reversed:nTF {#1} { normal } { reversed }~ hook,~ but~ it~
+ was~ already~ previously~ declared~ as~ a~
+ \@@_if_reversed:nTF {#1} { reversed } { normal }~ hook.~
+ A~ redeclaration~ is~ not~ possible.
}
% \end{macrocode}
%
diff --git a/base/testfiles-lthooks/lthooks-029.tlg b/base/testfiles-lthooks/lthooks-029.tlg
index ee894436..f02d4b4a 100644
--- a/base/testfiles-lthooks/lthooks-029.tlg
+++ b/base/testfiles-lthooks/lthooks-029.tlg
@@ -91,11 +91,11 @@ l. ...\ShowHook{ccc}
<recently read> }
l. ...\ShowHook{ccc}
------------ provide an reversed hook on an existing normal hook --------------
-! LaTeX3 Error: Hook aaa already declared as a normal hook!
+! LaTeX3 Error: Hook `aaa' already declared as a normal hook!
For immediate help type H <return>.
...
l. ...\ProvideReversedHook{aaa}
-You attempted to provide the hook aaa as reversed hook, but it was already
+You attempted to provide the hook `aaa' as a reversed hook, but it was already
previously declared as a normal hook. A redeclaration is not possible.
-> The hook 'aaa':
> Code chunks:
@@ -111,11 +111,11 @@ previously declared as a normal hook. A redeclaration is not possible.
<recently read> }
l. ...\ShowHook{aaa}
------------ provide an normal hook on an existing reversed hook --------------
-! LaTeX3 Error: Hook ccc already declared as a reversed hook!
+! LaTeX3 Error: Hook `ccc' already declared as a reversed hook!
For immediate help type H <return>.
...
l. ...\ProvideHook{ccc}
-You attempted to provide the hook ccc as normal hook, but it was already
+You attempted to provide the hook `ccc' as a normal hook, but it was already
previously declared as a reversed hook. A redeclaration is not possible.
-> The hook 'ccc':
> Code chunks:
@@ -131,7 +131,7 @@ previously declared as a reversed hook. A redeclaration is not possible.
<recently read> }
l. ...\ShowHook{ccc}
------------ provide hook that was disabled --------------
-LaTeX3 Warning: Can't provide hook ddd as it was disabled!
+LaTeX3 Warning: Can't provide hook `ddd' because it is disabled!
-> The hook 'ddd':
> The hook is not declared.
> The hook is disabled.
More information about the latex3-commits
mailing list.