[latex3-commits] [git/LaTeX3-latex3-latex3] luacolor: Explicitly expand fill/stroke values in backend (a7af8d1d6)

Joseph Wright joseph.wright at morningstar2.co.uk
Fri Feb 17 12:15:35 CET 2023


Repository : https://github.com/latex3/latex3
On branch  : luacolor
Link       : https://github.com/latex3/latex3/commit/a7af8d1d6b958f44d20992cce25ed48cc945f0fb

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

commit a7af8d1d6b958f44d20992cce25ed48cc945f0fb
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Fri Feb 17 11:08:15 2023 +0000

    Explicitly expand fill/stroke values in backend
    
    This is needed with a Lua approach as the vars
    are otherwise based verbatim.
    Forcing expansion here is likely clearer than relying
    on work at the Lua step.


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

a7af8d1d6b958f44d20992cce25ed48cc945f0fb
 l3backend/l3backend-color.dtx           | 18 ++++++++++++++----
 l3kernel/testfiles/m3expl001.luatex.tlg |  3 +++
 l3kernel/testfiles/m3expl001.tlg        |  3 +++
 l3kernel/testfiles/m3expl003.luatex.tlg |  3 +++
 l3kernel/testfiles/m3expl003.tlg        |  3 +++
 5 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/l3backend/l3backend-color.dtx b/l3backend/l3backend-color.dtx
index 4bf77d347..9c3354bfe 100644
--- a/l3backend/l3backend-color.dtx
+++ b/l3backend/l3backend-color.dtx
@@ -301,6 +301,12 @@
 % \begin{macro}{\@@_backend_select:nn}
 % \begin{macro}{\@@_backend_reset:}
 % \begin{macro}{\@@_backend_stack_push:nn}
+% \begin{macro}
+%   {
+%     \@@_backend_stack_push:nnn ,
+%     \@@_backend_stack_push:nVn ,
+%     \@@_backend_stack_push:nnV
+%   }
 %   Store the values then pass to the stack. The abstraction here allows for
 %   transparency needing the same fundamental approach but with switchable
 %   code for \LuaTeX{}.
@@ -320,11 +326,15 @@
 \cs_new_protected:Npn \@@_backend_reset:
   { \__kernel_color_backend_stack_pop:n \l_@@_backend_stack_int }
 \cs_new_eq:NN \@@_backend_stack_push:nn \__kernel_color_backend_stack_push:nn
+\cs_new_protected:Npn \@@_backend_stack_push:nnn #1#2#3
+  { \@@_backend_stack_push:nn {#1} { #2 ~ #3 } }
+\cs_generate_variant:Nn \@@_backend_stack_push:nnn { nV , nnV }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 %    \begin{macrocode}
 %</luatex|pdftex>
@@ -1101,8 +1111,8 @@
 \cs_new_protected:Npn \@@_backend_fill:n #1
   {
     \tl_set:Nn \l_@@_backend_fill_tl {#1}
-    \@@_backend_stack_push:nn \l_@@_backend_stack_int
-      { #1 ~ \l_@@_backend_stroke_tl }
+    \@@_backend_stack_push:nnV \l_@@_backend_stack_int
+      {#1} \l_@@_backend_stroke_tl
   }
 \cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
   { \@@_backend_stroke:n { #1 ~ K } }
@@ -1113,8 +1123,8 @@
 \cs_new_protected:Npn \@@_backend_stroke:n #1
   {
     \tl_set:Nn \l_@@_backend_stroke_tl {#1}
-    \@@_backend_stack_push:nn \l_@@_backend_stack_int
-      { \l_@@_backend_fill_tl \c_space_tl #1 }
+    \@@_backend_stack_push:nVn \l_@@_backend_stack_int
+      \l_@@_backend_fill_tl {#1}
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 8933aa17e..6ca72750c 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -43,6 +43,9 @@ Defining \__color_backend_select_rgb:n on line ...
 Defining \__color_backend_select:nn on line ...
 Defining \__color_backend_reset: on line ...
 Defining \__color_backend_stack_push:nn on line ...
+Defining \__color_backend_stack_push:nnn on line ...
+Defining \__color_backend_stack_push:nVn on line ...
+Defining \__color_backend_stack_push:nnV on line ...
 Defining \g__color_backend_colorant_prop on line ...
 Defining \__color_backend_devicen_colorants:n on line ...
 Defining \__color_backend_devicen_colorants:w on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 94ae7e1bd..8e6e7f4b9 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -43,6 +43,9 @@ Defining \__color_backend_select_rgb:n on line ...
 Defining \__color_backend_select:nn on line ...
 Defining \__color_backend_reset: on line ...
 Defining \__color_backend_stack_push:nn on line ...
+Defining \__color_backend_stack_push:nnn on line ...
+Defining \__color_backend_stack_push:nVn on line ...
+Defining \__color_backend_stack_push:nnV on line ...
 Defining \g__color_backend_colorant_prop on line ...
 Defining \__color_backend_devicen_colorants:n on line ...
 Defining \__color_backend_devicen_colorants:w on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 8933aa17e..6ca72750c 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -43,6 +43,9 @@ Defining \__color_backend_select_rgb:n on line ...
 Defining \__color_backend_select:nn on line ...
 Defining \__color_backend_reset: on line ...
 Defining \__color_backend_stack_push:nn on line ...
+Defining \__color_backend_stack_push:nnn on line ...
+Defining \__color_backend_stack_push:nVn on line ...
+Defining \__color_backend_stack_push:nnV on line ...
 Defining \g__color_backend_colorant_prop on line ...
 Defining \__color_backend_devicen_colorants:n on line ...
 Defining \__color_backend_devicen_colorants:w on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 94ae7e1bd..8e6e7f4b9 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -43,6 +43,9 @@ Defining \__color_backend_select_rgb:n on line ...
 Defining \__color_backend_select:nn on line ...
 Defining \__color_backend_reset: on line ...
 Defining \__color_backend_stack_push:nn on line ...
+Defining \__color_backend_stack_push:nnn on line ...
+Defining \__color_backend_stack_push:nVn on line ...
+Defining \__color_backend_stack_push:nnV on line ...
 Defining \g__color_backend_colorant_prop on line ...
 Defining \__color_backend_devicen_colorants:n on line ...
 Defining \__color_backend_devicen_colorants:w on line ...





More information about the latex3-commits mailing list.