[latex3-commits] [git/LaTeX3-latex3-latex3] master: Use expr evaluation for args in l3drivers (e00c405)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu Apr 26 12:28:00 CEST 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/e00c4059008de773793a61503580af3def00b2a4

>---------------------------------------------------------------

commit e00c4059008de773793a61503580af3def00b2a4
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Apr 26 09:10:12 2018 +0100

    Use expr evaluation for args in l3drivers
    
    Many of the functions already needed expr evaluation for underlying
    implmentation reasons. The hit is therefore mainly in color functions.


>---------------------------------------------------------------

e00c4059008de773793a61503580af3def00b2a4
 l3kernel/l3drivers.dtx                  |  189 +++++++++++++++++++++++++------
 l3kernel/testfiles/m3expl001.luatex.tlg |    6 +
 l3kernel/testfiles/m3expl001.ptex.tlg   |    3 +
 l3kernel/testfiles/m3expl001.tlg        |    6 +
 l3kernel/testfiles/m3expl001.uptex.tlg  |    3 +
 l3kernel/testfiles/m3expl001.xetex.tlg  |    3 +
 l3kernel/testfiles/m3expl003.luatex.tlg |    6 +
 l3kernel/testfiles/m3expl003.ptex.tlg   |    3 +
 l3kernel/testfiles/m3expl003.tlg        |    6 +
 l3kernel/testfiles/m3expl003.uptex.tlg  |    3 +
 l3kernel/testfiles/m3expl003.xetex.tlg  |    3 +
 11 files changed, 197 insertions(+), 34 deletions(-)

diff --git a/l3kernel/l3drivers.dtx b/l3kernel/l3drivers.dtx
index 31d2b09..2eb2c06 100644
--- a/l3kernel/l3drivers.dtx
+++ b/l3kernel/l3drivers.dtx
@@ -97,24 +97,28 @@
 %
 % \section{Box rotation and scaling}
 %
-% \begin{function}[added = 2017-12-13]{\driver_box_use_rotate:Nn}
+% \begin{function}[added = 2017-12-13, updated = 2018-04-26]
+%   {\driver_box_use_rotate:Nn}
 %   \begin{syntax}
 %     \cs{driver_box_use_rotate:Nn} \meta{box} \Arg{angle}
 %   \end{syntax}
 %   Inserts the content of the \meta{box} at the current insertion point
-%   rotated by the \meta{angle} (expressed in degrees). The material is
+%   rotated by the \meta{angle} (an \meta{fp expression} expressed in degrees).
+%   The material is
 %   rotated such the the \TeX{} reference point of the box is the center of
 %   rotation and remains the reference point after rotation. It is the
 %   responsibility of the code using this function to adjust the apparent
 %   size of the inserted material.
 % \end{function}
 %
-% \begin{function}[added = 2017-12-13]{\driver_box_use_scale:Nnn}
+% \begin{function}[added = 2017-12-13, updated = 2018-04-26]
+%   {\driver_box_use_scale:Nnn}
 %   \begin{syntax}
 %     \cs{driver_box_use_scale:Nnn} \meta{box} \Arg{x-scale} \Arg{y-scale}
 %   \end{syntax}
 %   Inserts the content of the \meta{box} at the current insertion point
-%   scale by the \meta{x-scale} and \meta{y-scale}. The reference point
+%   scale by the \meta{x-scale} and \meta{y-scale} (both \meta{fp expressions}).
+%   The reference point
 %   of the material will be unchanged. It is the responsibility of the
 %   code using this function to adjust the apparent size of the inserted
 %   material.
@@ -381,10 +385,11 @@
 %
 % \begin{function}{\driver_draw_miterlimit:n}
 %   \begin{syntax}
-%     \cs{driver_draw_miterlimit:n} \Arg{dimexpr}
+%     \cs{driver_draw_miterlimit:n} \Arg{factor}
 %   \end{syntax}
 %   Sets the miter limit of lines joined as a miter, as described in the
-%   PDF and PostScript manuals.
+%   PDF and PostScript manuals. The \meta{factor} here is an
+%   \meta{fp expression}.
 % \end{function}
 %
 % \subsection{Color}
@@ -575,17 +580,27 @@
 % \begin{macro}{\driver_color_gray:n}
 % \begin{macro}{\driver_color_rgb:nnn}
 % \begin{macro}{\driver_color_spot:nn}
-% \begin{macro}{\@@_color_select:n}
+% \begin{macro}{\@@_color_select:n, \@@_color_select:x}
 % \begin{macro}{\@@_color_reset:}
 %    Push the data to the stack. In the case of \texttt{dvips} also reset the
 %    drawing fill color in raw PostScript.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
-  { \@@_color_select:n { cmyk~ #1 ~ #2 ~ #3 ~ #4 } }
+  {
+    \@@_color_select:x
+      {
+        cmyk~
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+        \fp_eval:n {#3} ~ \fp_eval:n {#4}
+      }
+  }
 \cs_new_protected:Npn \driver_color_gray:n #1
-  { \@@_color_select:n { gray~ #1 } }
+  { \@@_color_select:x { gray~ \fp_eval:n {#1} } }
 \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
-  { \@@_color_select:n { rgb~ #1 ~ #2 ~ #3 } }
+  {
+    \@@_color_select:x
+      { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+  }
 \cs_new_protected:Npn \driver_color_spot:nn #1#2
   { \@@_color_select:n { \c_space_tl #1 } }
 \cs_new_protected:Npn \@@_color_select:n #1
@@ -596,6 +611,7 @@
 %</dvips>
     \group_insert_after:N \@@_color_reset:
   }
+\cs_generate_variant:Nn \@@_color_select:n { x }
 \cs_new_protected:Npn \@@_color_reset:
   { \@@_literal:n { color~pop } }
 %    \end{macrocode}
@@ -675,19 +691,42 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{macro}{\driver_color_cmyk:nnnn}
-% \begin{macro}{\driver_color_gray:n}
-% \begin{macro}{\driver_color_rgb:nnn}
+% \begin{macro}{\driver_color_cmyk:nnnn, \@@_color_cmyk:nnnn}
+% \begin{macro}{\driver_color_gray:n, @@_color_gray:n}
+% \begin{macro}{\driver_color_rgb:nnn, \@@_color_rgb:nnn}
 % \begin{macro}{\driver_color_spot:nn}
-% \begin{macro}{\@@_color_select:n}
+% \begin{macro}{\@@_color_select:n, \@@_color_select:x}
 % \begin{macro}{\@@_color_reset:}
 %   Simply dump the data, but allowing for \LuaTeX{}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
+  {
+     \use:x
+       {
+         \@@_color_cmyk:nnnn
+           { \fp_eval:n {#1} }
+           { \fp_eval:n {#2} }
+           { \fp_eval:n {#3} }
+           { \fp_eval:n {#4} }
+       } 
+  }
+\cs_new_protected:Npn \@@_color_cmyk:nnnn #1#2#3#4
   { \@@_color_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K } }
 \cs_new_protected:Npn \driver_color_gray:n #1
+  { \exp_args:Nx \@@_color_gray:n { \fp_eval:n {#1} } }
+\cs_new_protected:Npn \@@_color_gray:n #1
   { \@@_color_select:n { #1 ~ g ~ #1 ~ G } }
 \cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
+  {
+     \use:x
+       {
+         \@@_color_rgb:nnn
+           { \fp_eval:n {#1} }
+           { \fp_eval:n {#2} }
+           { \fp_eval:n {#3} }
+       } 
+  }
+\cs_new_protected:Npn \@@_color_rgb:nnn #1#2#3
   { \@@_color_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } }
 \cs_new_protected:Npn \driver_color_spot:nn #1#2
   { \@@_color_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } }
@@ -699,6 +738,7 @@
         \exp_not:N \l_@@_color_stack_int push {#1}
       \group_insert_after:N \exp_not:N \@@_color_reset:
   }
+\cs_generate_variant:Nn \@@_color_select:n { x }
 \cs_new_protected:Npx \@@_color_reset:
   {
     \cs_if_exist:NTF \luatex_pdfextension:D
@@ -810,11 +850,14 @@
 % \end{macro}
 %
 % \begin{macro}{\driver_box_use_rotate:Nn}
+% \begin{macro}{\@@_box_use_rotate:Nn}
 %   Rotating using \texttt{dvips} does not require that the box dimensions
 %   are altered and has a very convenient built-in operation. Zero rotation
 %   must be written as |0| not |-0| so there is a quick test.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
+  { \exp_args:NNf \@@_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
+\cs_new_protected:Npn \@@_box_use_rotate:Nn #1#2
   {
     \@@_scope_begin:
     \@@_align_currentpoint_begin:
@@ -831,6 +874,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\driver_box_use_scale:Nnn}
 %   The \texttt{dvips} driver once again has a dedicated operation we can
@@ -1112,7 +1156,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth }
   }
 \cs_new_protected:Npn \driver_draw_miterlimit:n #1
-  { \@@_draw_literal:n { #1 ~ setmiterlimit } }
+  { \@@_draw_literal:x { \fp_eval:n {#1} ~ setmiterlimit } }
 \cs_new_protected:Npn \driver_draw_cap_butt:
   { \@@_draw_literal:n { 0 ~ setlinecap } }
 \cs_new_protected:Npn \driver_draw_cap_round:
@@ -1147,31 +1191,57 @@
 %     \driver_draw_color_fill_rgb:nnn   ,
 %     \driver_draw_color_stroke_rgb:nnn
 %   }
-% \begin{macro}{\@@_draw_color_fill:n, \@@_draw_color_stroke:n}
+% \begin{macro}
+%   {
+%     \@@_draw_color_fill:n, \@@_draw_color_fill:x,
+%     \@@_draw_color_stroke:n, \@@_draw_color_stroke:x
+%   }
 %   For \texttt{dvips}, we can use the standard color stack to deal with
 %   stroke color, but for fills have to switch to raw PostScript. This is
 %   thus not handled by the stack, but the context is very restricted. See
 %   also how fills are implemented.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
-  { \@@_draw_fill:n { #1 ~ #2 ~ #3 ~ #4 ~ setcmykcolor } }
+  {
+    \@@_draw_color_fill:x
+      {
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+        setcmykcolor
+      }
+  }
 \cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
-  { \@@_draw_stroke:n { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
+  {
+    \@@_draw_color_stroke:x
+      {
+        cmyk ~
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+        \fp_eval:n {#3} ~ \fp_eval:n {#4}
+      }
+  }
 \cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
-  { \@@_draw_fill:n { #1 ~ setgray } }
+  { \@@_draw_color_fill:x { \fp_eval:n {#1} ~ setgray } }
 \cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
-  { \@@_draw_stroke:n { gray ~ #1 } }
+  { \@@_draw_color_stroke:x { gray ~ \fp_eval:n {#1} } }
 \cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
-  { \@@_draw_fill:n { #1 ~ #2 ~ #3 ~ setrgbcolor } }
+  {
+    \@@_draw_color_fill:x
+      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor }
+  }
 \cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
-  { \@@_draw_stroke:n { rgb ~ #1 ~ #2 ~ #3 } }
+  {
+    \@@_draw_color_stroke:x
+      { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
+  }
 \cs_new_protected:Npn \@@_draw_color_fill:n #1
   { \@@_draw_literal:n { /l3fc ~ { #1 } ~ def } }
+\cs_generate_variant:Nn \@@_draw_color_fill:n { x }
 \cs_new_protected:Npn \@@_draw_color_stroke:n #1
   {
     \@@_literal:n { color~push~#1 } 
     \group_insert_after:N \@@_color_reset:
   }
+\cs_generate_variant:Nn \@@_draw_color_stroke:n { x }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1186,7 +1256,17 @@
 %   path available and simply dump the matrix as given.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
-  { \@@_draw_literal:n { [#1 ~ #2 ~ #3 ~ #4 ~ 0 ~ 0 ] ~ concat } }
+  {
+    \@@_draw_literal:n
+      {
+        [
+          \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+          \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+          0 ~ 0
+        ] ~
+        concat
+      }
+  }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1329,6 +1409,7 @@
 % \end{macro}
 %
 % \begin{macro}{\driver_box_use_rotate:Nn}
+% \begin{macro}{\@@_box_use_rotate:Nn}
 % \begin{variable}{\l_@@_cos_fp, \l_@@_sin_fp}
 %   Rotations are set using an affine transformation matrix which therefore
 %   requires sine/cosine values not the angle itself. We store the rounded
@@ -1338,6 +1419,8 @@
 %   after rounding.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
+  { \exp_args:NNf \@@_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
+\cs_new_protected:Npn \@@_box_use_rotate:Nn #1#2
   {
     \@@_scope_begin:
     \box_set_wd:Nn #1 { 0pt }
@@ -1366,6 +1449,7 @@
 %    \end{macrocode}
 % \end{variable}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\driver_box_use_scale:Nnn}
 %   The same idea as for rotation but without the complexity of signs and
@@ -1560,15 +1644,18 @@
 % \end{macro}
 %
 % \begin{macro}{\driver_box_use_rotate:Nn}
+% \begin{macro}{\@@_box_use_rotate:Nn}
 %   Rotating in \texttt{(x)}dvipdmfx can be implemented using either PDF or
 %   driver-specific code. The former approach however is not \enquote{aware}
 %   of the content of boxes: this means that any embedded links would not be
-%   adjusted by the rotation. As such, the driver-native approach is prefered:
+%   adjusted by the rotation. As such, the driver-native approach is preferred:
 %   the code therefore is similar (though not identical) to the \texttt{dvips}
 %   version (notice the rotation angle here is positive). As for
 %   \texttt{dvips}, zero rotation is written as |0| not |-0|.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
+  { \exp_args:NNf \@@_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
+\cs_new_protected:Npn \@@_box_use_rotate:Nn #1#2
   {
     \@@_scope_begin:
     \@@_literal:x
@@ -1583,6 +1670,7 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\driver_box_use_scale:Nnn}
 %   Much the same idea for scaling: use the higher-level driver operation to allow
@@ -2005,7 +2093,7 @@
       { \dim_to_decimal_in_bp:n {#1} ~ w }
   }
 \cs_new_protected:Npn \driver_draw_miterlimit:n #1
-  { \@@_draw_literal:x { #1 ~ M } }
+  { \@@_draw_literal:x { \fp_eval:n {#1} ~ M } }
 \cs_new_protected:Npn \driver_draw_cap_butt:
   { \@@_draw_literal:n { 0 ~ J } }
 \cs_new_protected:Npn \driver_draw_cap_round:
@@ -2040,33 +2128,56 @@
 %     \driver_draw_color_fill_rgb:nnn   ,
 %     \driver_draw_color_stroke_rgb:nnn
 %   }
+% \begin{macro}{\@@_color_fill_select:n, \@@_color_fill_select:x}
 %    For the stroke color, all engines here can use the color stack to handle
 %    the setting. However, that is not the case for fill color: the stack in
 %    \texttt{(x)dvipdfmx} only covers one type of color. So we have to use
 %    different approaches for the two sets of engines.
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
-  { \@@_color_fill_select:n { #1 ~ #2 ~ #3 ~ #4 ~ k } }
+  {
+    \@@_color_fill_select:x
+      {
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ 
+        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+        k
+      }
+  }
 \cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
-  { \@@_color_select:n { #1 ~ #2 ~ #3 ~ #4 ~ K } }
+  {
+    \@@_color_select:x
+      {
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ 
+        \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
+        k
+      }
+  }
 \cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
-  { \@@_color_fill_select:n { #1 ~ g } }
+  { \@@_color_fill_select:x { \fp_eval:n {#1} ~ g } }
 \cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
-  { \@@_color_select:n { #1 ~ G } }
+  { \@@_color_select:x { \fp_eval:n {#1} ~ G } }
 \cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
-  { \@@_color_fill_select:n { #1 ~ #2 ~ #3 ~ rg } }
+  {
+    \@@_color_fill_select:x
+      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
+  }
 \cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
-  { \@@_color_select:n { #1 ~ #2 ~ #3 ~ RG } }
+  {
+    \@@_color_select:x
+      { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
+  }
 %<*pdfmode>
 \cs_new_eq:NN \@@_color_fill_select:n \@@_color_select:n
 %</pdfmode>
 %<*dvipdfmx|xdvipdfmx>
 \cs_new_eq:NN \@@_color_fill_select:n \@@_draw_literal:n
 %</dvipdfmx|xdvipdfmx>
+\cs_generate_variant:Nn \@@_color_fill_select:n { x }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}{\driver_draw_cm:nnnn}
 % \begin{macro}{\@@_draw_cm:nnnn}
@@ -2081,7 +2192,11 @@
 \cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
   {
 %<*pdfmode>
-    \@@_matrix:n { #1 ~ #2 ~ #3 ~ #4 }
+    \@@_matrix:x
+      {
+        \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
+        \fp_eval:n {#3} ~ \fp_eval:n {#4}
+      }
 %</pdfmode>
 %<*dvipdfmx|xdvipdfmx>
     \@@_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4}
@@ -2235,7 +2350,13 @@
     \driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
 %</pdfmode>
 %<*dvipdfmx|xdvipdfmx>
-    \@@_literal:n { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 }
+    \@@_literal:x
+      {
+        pdf:btrans~matrix~
+        \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
+        \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
+        0 ~ 0
+      }
 %</dvipdfmx|xdvipdfmx>
     \hbox_overlap_right:n { \box_use:N #1 }
 %<*dvipdfmx|xdvipdfmx>
@@ -2726,7 +2847,7 @@
 \cs_new_protected:Npn \driver_draw_linewidth:n #1
   { \@@_draw_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } }
 \cs_new_protected:Npn \driver_draw_miterlimit:n #1
-  { \@@_draw_scope:x { stroke-miterlimit=" #1 " } }
+  { \@@_draw_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } }
 \cs_new_protected:Npn \driver_draw_cap_butt:
   { \@@_draw_scope:n { stroke-linecap="butt" } }
 \cs_new_protected:Npn \driver_draw_cap_round:
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 43899b2..07f0464 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -5974,10 +5974,14 @@ Defining \driver_color_pickup:N on line ...
 Defining \l__driver_color_stack_int on line ...
 \l__driver_color_stack_int=\count...
 Defining \driver_color_cmyk:nnnn on line ...
+Defining \__driver_color_cmyk:nnnn on line ...
 Defining \driver_color_gray:n on line ...
+Defining \__driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
+Defining \__driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5987,6 +5991,7 @@ Defining \__driver_matrix:n on line ...
 Defining \__driver_matrix:x on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \l__driver_cos_fp on line ...
 Defining \l__driver_sin_fp on line ...
 Defining \driver_box_use_scale:Nnn on line ...
@@ -6036,6 +6041,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \driver_draw_box_use:Nnnnn on line ...
 )
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index c11f36b..fb54e7b 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -5973,6 +5973,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5980,6 +5981,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \__driver_image_getbb_jpg:n on line ...
@@ -6032,6 +6034,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 2d113a3..dee9b8e 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -6172,10 +6172,14 @@ Defining \driver_color_pickup:N on line ...
 Defining \l__driver_color_stack_int on line ...
 \l__driver_color_stack_int=\count...
 Defining \driver_color_cmyk:nnnn on line ...
+Defining \__driver_color_cmyk:nnnn on line ...
 Defining \driver_color_gray:n on line ...
+Defining \__driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
+Defining \__driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -6185,6 +6189,7 @@ Defining \__driver_matrix:n on line ...
 Defining \__driver_matrix:x on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \l__driver_cos_fp on line ...
 Defining \l__driver_sin_fp on line ...
 Defining \driver_box_use_scale:Nnn on line ...
@@ -6234,6 +6239,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \driver_draw_box_use:Nnnnn on line ...
 )
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 504c1a7..10fcf3e 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -6172,6 +6172,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -6179,6 +6180,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \__driver_image_getbb_jpg:n on line ...
@@ -6231,6 +6233,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 9f29f3f..c3545da 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -5951,6 +5951,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5958,6 +5959,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \g__driver_image_int on line ...
@@ -6019,6 +6021,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 43899b2..07f0464 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -5974,10 +5974,14 @@ Defining \driver_color_pickup:N on line ...
 Defining \l__driver_color_stack_int on line ...
 \l__driver_color_stack_int=\count...
 Defining \driver_color_cmyk:nnnn on line ...
+Defining \__driver_color_cmyk:nnnn on line ...
 Defining \driver_color_gray:n on line ...
+Defining \__driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
+Defining \__driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5987,6 +5991,7 @@ Defining \__driver_matrix:n on line ...
 Defining \__driver_matrix:x on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \l__driver_cos_fp on line ...
 Defining \l__driver_sin_fp on line ...
 Defining \driver_box_use_scale:Nnn on line ...
@@ -6036,6 +6041,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \driver_draw_box_use:Nnnnn on line ...
 )
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index c11f36b..fb54e7b 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -5973,6 +5973,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5980,6 +5981,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \__driver_image_getbb_jpg:n on line ...
@@ -6032,6 +6034,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 2d113a3..dee9b8e 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -6172,10 +6172,14 @@ Defining \driver_color_pickup:N on line ...
 Defining \l__driver_color_stack_int on line ...
 \l__driver_color_stack_int=\count...
 Defining \driver_color_cmyk:nnnn on line ...
+Defining \__driver_color_cmyk:nnnn on line ...
 Defining \driver_color_gray:n on line ...
+Defining \__driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
+Defining \__driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -6185,6 +6189,7 @@ Defining \__driver_matrix:n on line ...
 Defining \__driver_matrix:x on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \l__driver_cos_fp on line ...
 Defining \l__driver_sin_fp on line ...
 Defining \driver_box_use_scale:Nnn on line ...
@@ -6234,6 +6239,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \driver_draw_box_use:Nnnnn on line ...
 )
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 504c1a7..10fcf3e 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -6172,6 +6172,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -6179,6 +6180,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \__driver_image_getbb_jpg:n on line ...
@@ -6231,6 +6233,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 9f29f3f..c3545da 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -5951,6 +5951,7 @@ Defining \driver_color_gray:n on line ...
 Defining \driver_color_rgb:nnn on line ...
 Defining \driver_color_spot:nn on line ...
 Defining \__driver_color_select:n on line ...
+Defining \__driver_color_select:x on line ...
 Defining \__driver_color_reset: on line ...
 Defining \__driver_literal_pdf:n on line ...
 Defining \__driver_literal_pdf:x on line ...
@@ -5958,6 +5959,7 @@ Defining \__driver_scope_begin: on line ...
 Defining \__driver_scope_end: on line ...
 Defining \driver_box_use_clip:N on line ...
 Defining \driver_box_use_rotate:Nn on line ...
+Defining \__driver_box_use_rotate:Nn on line ...
 Defining \driver_box_use_scale:Nnn on line ...
 Defining \__driver_image_getbb_eps:n on line ...
 Defining \g__driver_image_int on line ...
@@ -6019,6 +6021,7 @@ Defining \driver_draw_color_stroke_gray:n on line ...
 Defining \driver_draw_color_fill_rgb:nnn on line ...
 Defining \driver_draw_color_stroke_rgb:nnn on line ...
 Defining \__driver_color_fill_select:n on line ...
+Defining \__driver_color_fill_select:x on line ...
 Defining \driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm:nnnn on line ...
 Defining \__driver_draw_cm_decompose:nnnnN on line ...





More information about the latex3-commits mailing list