[latex3-commits] [git/LaTeX3-latex3-latex3] master: Fix scope treatment of \box_set_ht:Nn, etc. (66a287e)
Joseph Wright
joseph.wright at morningstar2.co.uk
Wed Jan 23 22:30:14 CET 2019
Repository : https://github.com/latex3/latex3
On branch : master
Link : https://github.com/latex3/latex3/commit/66a287e5250b0c0e61e58f8361dfeb00186869cf
>---------------------------------------------------------------
commit 66a287e5250b0c0e61e58f8361dfeb00186869cf
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Wed Jan 23 21:30:14 2019 +0000
Fix scope treatment of \box_set_ht:Nn, etc.
>---------------------------------------------------------------
66a287e5250b0c0e61e58f8361dfeb00186869cf
l3kernel/CHANGELOG.md | 2 ++
l3kernel/l3box.dtx | 46 +++++++++++++++++++++++++------
l3kernel/testfiles/m3expl001.luatex.tlg | 10 +++++--
l3kernel/testfiles/m3expl001.ptex.tlg | 10 +++++--
l3kernel/testfiles/m3expl001.tlg | 10 +++++--
l3kernel/testfiles/m3expl001.uptex.tlg | 10 +++++--
l3kernel/testfiles/m3expl001.xetex.tlg | 10 +++++--
l3kernel/testfiles/m3expl003.luatex.tlg | 10 +++++--
l3kernel/testfiles/m3expl003.ptex.tlg | 10 +++++--
l3kernel/testfiles/m3expl003.tlg | 10 +++++--
l3kernel/testfiles/m3expl003.uptex.tlg | 10 +++++--
l3kernel/testfiles/m3expl003.xetex.tlg | 10 +++++--
12 files changed, 120 insertions(+), 28 deletions(-)
diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 5a990cc..b32d41f 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -10,6 +10,7 @@ this project uses date-based 'snapshot' version identifiers.
### Added
- Global versions of box affine functions, e.g. `\box_grotate:Nn`
+- Global versions of box size adjustment functions
- `\box_(g)set_eq_drop:NN`, `\(h|v)box_unpack_drop:N`
- `\file_get:nnN` and `\file_get:nnNTF`
- Experimental functions `\sys_shell_get:nnN` and `\sys_shell_get:nnNTF`
@@ -27,6 +28,7 @@ this project uses date-based 'snapshot' version identifiers.
### Fixed
+- Scope treatment of `\box_set_dp:N`, _etc._
- In (u)platex: detection of spaces in `\tl_rescan:nn` and related functions
### Removed
diff --git a/l3kernel/l3box.dtx b/l3kernel/l3box.dtx
index 5d13401..98d06d0 100644
--- a/l3kernel/l3box.dtx
+++ b/l3kernel/l3box.dtx
@@ -179,7 +179,11 @@
% \end{texnote}
% \end{function}
%
-% \begin{function}[updated = 2011-10-22]{\box_set_dp:Nn, \box_set_dp:cn}
+% \begin{function}[updated = 2019-01-22]
+% {
+% \box_set_dp:Nn, \box_set_dp:cn,
+% \box_gset_dp:Nn, \box_gset_dp:cn
+% }
% \begin{syntax}
% \cs{box_set_dp:Nn} \meta{box} \Arg{dimension expression}
% \end{syntax}
@@ -187,7 +191,11 @@
% the \Arg{dimension expression}.
% \end{function}
%
-% \begin{function}[updated = 2011-10-22]{\box_set_ht:Nn, \box_set_ht:cn}
+% \begin{function}[updated = 2019-01-22]
+% {
+% \box_set_ht:Nn, \box_set_ht:cn,
+% \box_gset_ht:Nn, \box_gset_ht:cn
+% }
% \begin{syntax}
% \cs{box_set_ht:Nn} \meta{box} \Arg{dimension expression}
% \end{syntax}
@@ -195,7 +203,11 @@
% the \Arg{dimension expression}.
% \end{function}
%
-% \begin{function}[updated = 2011-10-22]{\box_set_wd:Nn, \box_set_wd:cn}
+% \begin{function}[updated = 2019-01-22]
+% {
+% \box_set_wd:Nn, \box_set_wd:cn,
+% \box_gset_wd:Nn, \box_gset_wd:cn
+% }
% \begin{syntax}
% \cs{box_set_wd:Nn} \meta{box} \Arg{dimension expression}
% \end{syntax}
@@ -1029,20 +1041,38 @@
% \begin{macro}{\box_set_ht:Nn, \box_set_ht:cn}
% \begin{macro}{\box_set_dp:Nn, \box_set_dp:cn}
% \begin{macro}{\box_set_wd:Nn, \box_set_wd:cn}
-% Setting the size is easy: all primitive work. These primitives are not
-% expandable, so the derived functions are not either.
+% Setting the size whilst respecting local scope requires copying;
+% the same issue does not come up when working globally.
% When debugging, the dimension expression |#2| is surrounded by
% parentheses to catch early termination.
% \begin{macrocode}
\cs_new_protected:Npn \box_set_dp:Nn #1#2
+ {
+ \tex_setbox:D #1 = \tex_copy:D #1
+ \box_dp:N #1 \@@_dim_eval:n {#2}
+ }
+\cs_generate_variant:Nn \box_set_dp:Nn { c }
+\cs_new_protected:Npn \box_gset_dp:Nn #1#2
{ \box_dp:N #1 \@@_dim_eval:n {#2} }
+\cs_generate_variant:Nn \box_gset_dp:Nn { c }
\cs_new_protected:Npn \box_set_ht:Nn #1#2
+ {
+ \tex_setbox:D #1 = \tex_copy:D #1
+ \box_ht:N #1 \@@_dim_eval:n {#2}
+ }
+\cs_generate_variant:Nn \box_set_ht:Nn { c }
+\cs_new_protected:Npn \box_gset_ht:Nn #1#2
{ \box_ht:N #1 \@@_dim_eval:n {#2} }
+\cs_generate_variant:Nn \box_gset_ht:Nn { c }
\cs_new_protected:Npn \box_set_wd:Nn #1#2
- { \box_wd:N #1 \@@_dim_eval:n {#2} }
-\cs_generate_variant:Nn \box_set_ht:Nn { c }
-\cs_generate_variant:Nn \box_set_dp:Nn { c }
+ {
+ \tex_setbox:D #1 = \tex_copy:D #1
+ \box_wd:N #1 \@@_dim_eval:n {#2}
+ }
\cs_generate_variant:Nn \box_set_wd:Nn { c }
+\cs_new_protected:Npn \box_gset_wd:Nn #1#2
+ { \box_wd:N #1 \@@_dim_eval:n {#2} }
+\cs_generate_variant:Nn \box_gset_wd:Nn { c }
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 36b137e..309f201 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -5070,11 +5070,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 5a9a9ea..55b06b0 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -5366,11 +5366,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 6026bc9..4def151 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -5366,11 +5366,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index e79ea93..c58aefc 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -5363,11 +5363,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index f0032b0..6b9e6cd 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -5081,11 +5081,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 36b137e..309f201 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -5070,11 +5070,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 5a9a9ea..55b06b0 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -5366,11 +5366,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 6026bc9..4def151 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -5366,11 +5366,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index e79ea93..c58aefc 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -5363,11 +5363,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index f0032b0..6b9e6cd 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -5081,11 +5081,17 @@ Defining \box_ht:c on line ...
Defining \box_dp:c on line ...
Defining \box_wd:c on line ...
Defining \box_set_dp:Nn on line ...
+Defining \box_set_dp:cn on line ...
+Defining \box_gset_dp:Nn on line ...
+Defining \box_gset_dp:cn on line ...
Defining \box_set_ht:Nn on line ...
-Defining \box_set_wd:Nn on line ...
Defining \box_set_ht:cn on line ...
-Defining \box_set_dp:cn on line ...
+Defining \box_gset_ht:Nn on line ...
+Defining \box_gset_ht:cn on line ...
+Defining \box_set_wd:Nn on line ...
Defining \box_set_wd:cn on line ...
+Defining \box_gset_wd:Nn on line ...
+Defining \box_gset_wd:cn on line ...
Defining \box_use_drop:N on line ...
Defining \box_use:N on line ...
Defining \box_use_drop:c on line ...
More information about the latex3-commits
mailing list