From 208ecf90e1d5a239ff2a8cd506c077d194d348c0 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Tue, 23 Jan 2024 03:00:53 +0000
Subject: CTAN sync 202401230300

---
 macros/latex/contrib/l3kernel/l3prg.dtx | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

(limited to 'macros/latex/contrib/l3kernel/l3prg.dtx')

diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index 866537f904..0b134d713f 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2024-01-04}
+% \date{Released 2024-01-22}
 %
 % \maketitle
 %
@@ -171,6 +171,10 @@
 % state. There must be a return statement for each branch; failing to do
 % so will result in erroneous output if that branch is executed.
 %
+% The special case where the code of a conditional ends with
+% \cs{prg_return_true:} \cs{else:} \cs{prg_return_false:} \cs{fi:} is
+% optimized.
+%
 % \begin{function}[updated = 2023-05-26]
 %   {
 %     \prg_new_eq_conditional:NNn,
@@ -1789,9 +1793,10 @@
 \tex_catcode:D `\^^@ = 2 \exp_stop_f:
 \cs_new:Npn \group_align_safe_begin:
   { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: }
-\group_end:
+\tex_catcode:D `\^^@ = 1 \exp_stop_f:
 \cs_new:Npn \group_align_safe_end:
-  { \if_int_compare:w `{ = \c_zero_int } \fi: }
+  { \exp:w `^^@ \if_false: } \fi: \exp_stop_f: }
+\group_end:
 %    \end{macrocode}
 % \end{macro}
 %
-- 
cgit v1.2.3

