[latex3-commits] [l3svn] r6911 - Fix bug where defaults of a previous definition were used
noreply at latex-project.org
noreply at latex-project.org
Mon Feb 13 16:23:53 CET 2017
Author: bruno
Date: 2017-02-13 16:23:53 +0100 (Mon, 13 Feb 2017)
New Revision: 6911
Modified:
trunk/l3packages/xparse/testfiles/xparse001.ptex.tlg
trunk/l3packages/xparse/testfiles/xparse001.tlg
trunk/l3packages/xparse/testfiles/xparse001.uptex.tlg
trunk/l3packages/xparse/testfiles/xparse004.luatex.tlg
trunk/l3packages/xparse/testfiles/xparse004.lvt
trunk/l3packages/xparse/testfiles/xparse004.tlg
trunk/l3packages/xparse/xparse.dtx
Log:
Fix bug where defaults of a previous definition were used
I was using the existence of "\foo defaults" as a proxy for
knowing whether "\foo" had defaults but did not redefine that
function when there was no default, hence an old definition
was used. Now instead use a recognizable marker "?" to denote
absence of defaults.
Modified: trunk/l3packages/xparse/testfiles/xparse001.ptex.tlg
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse001.ptex.tlg 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse001.ptex.tlg 2017-02-13 15:23:53 UTC (rev 6911)
@@ -36,7 +36,7 @@
| A new command '\foo' will be created.
|...............................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {}\foo \foo code
-\foo defaults {}.
+?{}.
<recently read> }
l. ...}
> \foo code=\protected\long macro:->First definition.
@@ -52,7 +52,7 @@
. Defining command \foo with sig. 'm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1->(#1).
@@ -64,7 +64,7 @@
. Redefining command \foo with sig. 'mm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -76,8 +76,8 @@
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -89,9 +89,8 @@
. Redefining command \foo with sig. 'mmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4->(#1)(#2)(#3)(#4).
@@ -103,9 +102,9 @@
. Redefining command \foo with sig. 'mmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5->(#1)(#2)(#3)(#4)(#5).
@@ -117,10 +116,9 @@
. Redefining command \foo with sig. 'mmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5#6->(#1)(#2)(#3)(#4)(#5)(#6).
@@ -132,10 +130,10 @@
. Redefining command \foo with sig. 'mmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -148,11 +146,10 @@
. Redefining command \foo with sig. 'mmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -165,11 +162,11 @@
. Redefining command \foo with sig. 'mmmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -466,8 +463,7 @@
. Defining command \foo with sig. 'lm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
-\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_u:w \foo (arg 1) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -479,8 +475,8 @@
. Redefining command \foo with sig. 'mlm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mlm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_u:w \foo (arg
+2) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -492,8 +488,8 @@
. Redefining command \foo with sig. 'u{end}u{stop!}' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn
-{u{end}u{stop!}}\foo \foo code \foo defaults {\__xparse_expandable_grab_u:w
-\foo (arg 1) \__xparse_expandable_grab_u:w \foo (arg 2) }.
+{u{end}u{stop!}}\foo \foo code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
+\__xparse_expandable_grab_u:w \foo (arg 2) }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -505,7 +501,7 @@
. Redefining command \foo with sig. 'lll' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lll}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
+code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_u:w \foo
(arg 3) }.
<recently read> }
@@ -690,8 +686,8 @@
.
. Defining command \foo with sig. 'm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -702,8 +698,8 @@
.
. Redefining command \foo with sig. '+m' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -714,8 +710,8 @@
.
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
@@ -753,8 +749,8 @@
.
. Redefining command \foo with sig. 'sm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code
+?{\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
*\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
Modified: trunk/l3packages/xparse/testfiles/xparse001.tlg
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse001.tlg 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse001.tlg 2017-02-13 15:23:53 UTC (rev 6911)
@@ -36,7 +36,7 @@
| A new command '\foo' will be created.
|...............................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {}\foo \foo code
-\foo defaults {}.
+?{}.
<recently read> }
l. ...}
> \foo code=\protected\long macro:->First definition.
@@ -52,7 +52,7 @@
. Defining command \foo with sig. 'm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1->(#1).
@@ -64,7 +64,7 @@
. Redefining command \foo with sig. 'mm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -76,8 +76,8 @@
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -89,9 +89,8 @@
. Redefining command \foo with sig. 'mmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4->(#1)(#2)(#3)(#4).
@@ -103,9 +102,9 @@
. Redefining command \foo with sig. 'mmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5->(#1)(#2)(#3)(#4)(#5).
@@ -117,10 +116,9 @@
. Redefining command \foo with sig. 'mmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5#6->(#1)(#2)(#3)(#4)(#5)(#6).
@@ -132,10 +130,10 @@
. Redefining command \foo with sig. 'mmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -148,11 +146,10 @@
. Redefining command \foo with sig. 'mmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -165,11 +162,11 @@
. Redefining command \foo with sig. 'mmmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -466,8 +463,7 @@
. Defining command \foo with sig. 'lm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
-\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_u:w \foo (arg 1) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -479,8 +475,8 @@
. Redefining command \foo with sig. 'mlm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mlm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_u:w \foo (arg
+2) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -492,8 +488,8 @@
. Redefining command \foo with sig. 'u{end}u{stop!}' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn
-{u{end}u{stop!}}\foo \foo code \foo defaults {\__xparse_expandable_grab_u:w
-\foo (arg 1) \__xparse_expandable_grab_u:w \foo (arg 2) }.
+{u{end}u{stop!}}\foo \foo code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
+\__xparse_expandable_grab_u:w \foo (arg 2) }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -505,7 +501,7 @@
. Redefining command \foo with sig. 'lll' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lll}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
+code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_u:w \foo
(arg 3) }.
<recently read> }
@@ -690,8 +686,8 @@
.
. Defining command \foo with sig. 'm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -702,8 +698,8 @@
.
. Redefining command \foo with sig. '+m' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -714,8 +710,8 @@
.
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
@@ -753,8 +749,8 @@
.
. Redefining command \foo with sig. 'sm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code
+?{\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
*\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
Modified: trunk/l3packages/xparse/testfiles/xparse001.uptex.tlg
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse001.uptex.tlg 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse001.uptex.tlg 2017-02-13 15:23:53 UTC (rev 6911)
@@ -36,7 +36,7 @@
| A new command '\foo' will be created.
|...............................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {}\foo \foo code
-\foo defaults {}.
+?{}.
<recently read> }
l. ...}
> \foo code=\protected\long macro:->First definition.
@@ -52,7 +52,7 @@
. Defining command \foo with sig. 'm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1->(#1).
@@ -64,7 +64,7 @@
. Redefining command \foo with sig. 'mm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -76,8 +76,8 @@
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -89,9 +89,8 @@
. Redefining command \foo with sig. 'mmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4->(#1)(#2)(#3)(#4).
@@ -103,9 +102,9 @@
. Redefining command \foo with sig. 'mmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5->(#1)(#2)(#3)(#4)(#5).
@@ -117,10 +116,9 @@
. Redefining command \foo with sig. 'mmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3#4#5#6->(#1)(#2)(#3)(#4)(#5)(#6).
@@ -132,10 +130,10 @@
. Redefining command \foo with sig. 'mmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -148,11 +146,10 @@
. Redefining command \foo with sig. 'mmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -165,11 +162,11 @@
. Redefining command \foo with sig. 'mmmmmmmmm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mmmmmmmmm}\foo
-\foo code \foo defaults {\__xparse_expandable_grab_m:w
+\foo code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w }.
+\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long
@@ -466,8 +463,7 @@
. Defining command \foo with sig. 'lm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lm}\foo \foo code
-\foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
-\__xparse_expandable_grab_m:w }.
+?{\__xparse_expandable_grab_u:w \foo (arg 1) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -479,8 +475,8 @@
. Redefining command \foo with sig. 'mlm' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {mlm}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_m:w
-\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_m:w }.
+code ?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_u:w \foo (arg
+2) \__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2#3->(#1)(#2)(#3).
@@ -492,8 +488,8 @@
. Redefining command \foo with sig. 'u{end}u{stop!}' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn
-{u{end}u{stop!}}\foo \foo code \foo defaults {\__xparse_expandable_grab_u:w
-\foo (arg 1) \__xparse_expandable_grab_u:w \foo (arg 2) }.
+{u{end}u{stop!}}\foo \foo code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
+\__xparse_expandable_grab_u:w \foo (arg 2) }.
<recently read> }
l. ...}
> \foo code=\protected\long macro:#1#2->(#1)(#2).
@@ -505,7 +501,7 @@
. Redefining command \foo with sig. 'lll' on line ....
.................................................
> \foo=\protected macro:->\__xparse_start_expandable:nNNNn {lll}\foo \foo
-code \foo defaults {\__xparse_expandable_grab_u:w \foo (arg 1)
+code ?{\__xparse_expandable_grab_u:w \foo (arg 1)
\__xparse_expandable_grab_u:w \foo (arg 2) \__xparse_expandable_grab_u:w \foo
(arg 3) }.
<recently read> }
@@ -690,8 +686,8 @@
.
. Defining command \foo with sig. 'm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -702,8 +698,8 @@
.
. Redefining command \foo with sig. '+m' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w }.
+> \foo=macro:->\__xparse_start_expandable:nNNNn {+m}\foo \foo code
+?{\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
> \foo code=\long macro:#1->(#1).
@@ -714,8 +710,8 @@
.
. Redefining command \foo with sig. 'mmm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {mmm}\foo \foo code
+?{\__xparse_expandable_grab_m:w \__xparse_expandable_grab_m:w
\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
@@ -753,8 +749,8 @@
.
. Redefining command \foo with sig. 'sm' on line ....
.................................................
-> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code \foo
-defaults {\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
+> \foo=macro:->\__xparse_start_expandable:nNNNn {sm}\foo \foo code
+?{\__xparse_expandable_grab_t:w \__xparse_grabber_*:w
*\__xparse_expandable_grab_m:w }.
<recently read> }
l. ...}
Modified: trunk/l3packages/xparse/testfiles/xparse004.luatex.tlg
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse004.luatex.tlg 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse004.luatex.tlg 2017-02-13 15:23:53 UTC (rev 6911)
@@ -1662,3 +1662,19 @@
.................................................
|abc||def|
============================================================
+============================================================
+TEST 23: Same expandable command with/without defaults
+============================================================
+.................................................
+. LaTeX info: "xparse/redefine-command"
+.
+. Redefining command \foo with sig. 'O{a}m' on line ....
+.................................................
+|a|b|{c}
+.................................................
+. LaTeX info: "xparse/redefine-command"
+.
+. Redefining command \foo with sig. 'mm' on line ....
+.................................................
+|b|c|
+============================================================
Modified: trunk/l3packages/xparse/testfiles/xparse004.lvt
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse004.lvt 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse004.lvt 2017-02-13 15:23:53 UTC (rev 6911)
@@ -403,4 +403,13 @@
\DeclareDocumentCommand { \D } { o l m } { \TYPE { |#1|#2|#3| } }
\D [abc]{def}
}
+
+\TEST { Same~expandable~command~with/without~defaults }
+ {
+ \DeclareExpandableDocumentCommand { \foo } { O{a} m } { |#1|#2| }
+ \TYPE { \foo {b} {c} }
+ \DeclareExpandableDocumentCommand { \foo } { m m } { |#1|#2| }
+ \TYPE { \foo {b} {c} }
+ }
+
\END
Modified: trunk/l3packages/xparse/testfiles/xparse004.tlg
===================================================================
--- trunk/l3packages/xparse/testfiles/xparse004.tlg 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/testfiles/xparse004.tlg 2017-02-13 15:23:53 UTC (rev 6911)
@@ -1662,3 +1662,19 @@
.................................................
|abc||def|
============================================================
+============================================================
+TEST 23: Same expandable command with/without defaults
+============================================================
+.................................................
+. LaTeX info: "xparse/redefine-command"
+.
+. Redefining command \foo with sig. 'O{a}m' on line ....
+.................................................
+|a|b|{c}
+.................................................
+. LaTeX info: "xparse/redefine-command"
+.
+. Redefining command \foo with sig. 'mm' on line ....
+.................................................
+|b|c|
+============================================================
Modified: trunk/l3packages/xparse/xparse.dtx
===================================================================
--- trunk/l3packages/xparse/xparse.dtx 2017-02-13 15:15:32 UTC (rev 6910)
+++ trunk/l3packages/xparse/xparse.dtx 2017-02-13 15:23:53 UTC (rev 6911)
@@ -1155,7 +1155,9 @@
{ \exp_not:n {#2} }
\exp_not:c { \l_@@_function_tl \c_space_tl }
\exp_not:c { \l_@@_function_tl \c_space_tl code }
- \exp_not:c { \l_@@_function_tl \c_space_tl defaults }
+ \bool_if:NTF \l_@@_defaults_bool
+ { \exp_not:c { \l_@@_function_tl \c_space_tl defaults } }
+ { ? }
{ \exp_not:o \l_@@_signature_tl }
}
\bool_if:NTF \l_@@_all_long_bool
@@ -1422,7 +1424,8 @@
% \begin{macro}[EXP,aux]{\@@_end_expandable_defaults:nnw}
% \begin{macro}[EXP,aux]{\@@_end_expandable_defaults:nw}
% \begin{macro}[EXP,aux]{\@@_end_expandable_defaults_E:nnw}
-% Followed by a function |#1| to determine default values, the code
+% Followed by a function |#1| to determine default values (or |?| if
+% there are no defaults), the code
% |#2|, arguments that have been grabbed, then \cs{q_@@} and a generic
% grabber. The idea to find default values is similar to the
% non-expandable case but we cannot define an auxiliary function, so
@@ -1439,7 +1442,7 @@
{ \exp_args:No \@@_end_expandable_aux:nNNN {#3} #1 #2 #4 }
\cs_new:Npn \@@_end_expandable_aux:nNNN #1#2#3#4
{
- \cs_if_exist:NF #2 { \exp_after:wN \use_iv:nnnn }
+ \token_if_eq_charcode:NNT ? #2 { \exp_after:wN \use_iv:nnnn }
\@@_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3
{ } { } { } { } { } { } { } { } { } { }
{
More information about the latex3-commits
mailing list