summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-08-31 20:20:02 +0000
committerKarl Berry <karl@freefriends.org>2022-08-31 20:20:02 +0000
commitf448cdb03795e1bb20f2f161b6ef98ee9d397d63 (patch)
tree53855239a59c20df9b21f6161b69dbb888e713f0 /Master
parentdda31e626ef6f0f11d9fc942ef8feb6025acd8af (diff)
l3backend (31aug22)
git-svn-id: svn://tug.org/texlive/trunk@64252 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md8
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdfbin932092 -> 929269 bytes
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx22
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx141
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def40
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def48
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def8
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def59
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def59
-rw-r--r--Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def40
17 files changed, 190 insertions, 261 deletions
diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
index 8bf6a938660..e2e4f4a3b39 100644
--- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
@@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-08-30]
+
+### Added
+- Support for new approach to writing PDF objects
+
## [2022-08-23]
### Changed
@@ -262,7 +267,8 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-08-23...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-08-30...HEAD
+[2022-08-30]: https://github.com/latex3/latex3/compare/2022-08-23...2022-08-30
[2022-08-23]: https://github.com/latex3/latex3/compare/2022-08-05...2022-08-23
[2022-08-05]: https://github.com/latex3/latex3/compare/2022-07-01...2022-08-05
[2022-07-01]: https://github.com/latex3/latex3/compare/2022-04-20...2022-07-01
diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md
index 724c54a8902..5961e2ff7a4 100644
--- a/Master/texmf-dist/doc/latex/l3backend/README.md
+++ b/Master/texmf-dist/doc/latex/l3backend/README.md
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================
-Release 2022-08-23
+Release 2022-08-30
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
index 00836f6abb2..9862216c015 100644
--- a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
+++ b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
index 135bee63ebe..09672f0ac81 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2022-08-23}{}
+ {l3backend-dvipdfmx.def}{2022-08-30}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2022-08-23}{}
+ {l3backend-dvips.def}{2022-08-30}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2022-08-23}{}
+ {l3backend-dvisvgm.def}{2022-08-30}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2022-08-23}{}
+ {l3backend-luatex.def}{2022-08-30}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2022-08-23}{}
+ {l3backend-pdftex.def}{2022-08-30}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2022-08-23}{}
+ {l3backend-xetex.def}{2022-08-30}{}
{L3 backend support: XeTeX}
%</xetex>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
index 6b5b08457c4..4a41423fb01 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
index dabf7284278..a4eef230984 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
@@ -852,8 +852,8 @@
{
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
+ \pdf_object_new:n { color \int_use:N \g_@@_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array }
{ /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
}
\prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 }
@@ -867,8 +867,8 @@
{
\pdf_object_if_exist:nF { @@_illuminant_CIELAB_ #1 }
{
- \pdf_object_new:nn { @@_illuminant_CIELAB_ #1 } { array }
- \pdf_object_write:nx { @@_illuminant_CIELAB_ #1 }
+ \pdf_object_new:n { @@_illuminant_CIELAB_ #1 }
+ \pdf_object_write:nnx { @@_illuminant_CIELAB_ #1 } { array }
{
/Lab ~
<<
@@ -921,8 +921,8 @@
}
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g_@@_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g_@@_model_int }
+ \pdf_object_new:n { color \int_use:N \g_@@_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array }
{
/DeviceN ~
[ ~ #1 ~ ] ~
@@ -951,8 +951,8 @@
{
\pdf_object_if_exist:nF { @@_icc_ #1 }
{
- \pdf_object_new:nn { @@_icc_ #1 } { fstream }
- \pdf_object_write:nx { @@_icc_ #1 }
+ \pdf_object_new:n { @@_icc_ #1 }
+ \pdf_object_write:nnx { @@_icc_ #1 } { fstream }
{
{
/N ~ \exp_not:n { #2 } ~
@@ -976,8 +976,8 @@
{
\pdf_object_if_exist:nF { @@_icc_ #1 }
{
- \pdf_object_new:nn { @@_icc_ #1 } { fstream }
- \pdf_object_write:nn { @@_icc_ #1 }
+ \pdf_object_new:n { @@_icc_ #1 }
+ \pdf_object_write:nnn { @@_icc_ #1 } { fstream }
{
{ /N ~ #3 }
{#1}
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
index c3d91ed9aff..952a849ec6d 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
index 4a4b5136adb..53e9c767ffc 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
index f4caf7a7e57..aab4a1228c3 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
index a1decb1c384..e47475eece4 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
index d93ddc4e338..b31805b0fd2 100644
--- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-23}
+% \date{Released 2022-08-30}
%
% \maketitle
%
@@ -105,33 +105,34 @@
%
% \subsubsection{Objects}
%
-% \begin{variable}{\g_@@_backend_object_int, \g_@@_backend_object_prop}
-% For tracking objects to allow finalisation.
+% \begin{variable}{\g_@@_backend_object_int}
+% For tracking objects.
% \begin{macrocode}
\int_new:N \g_@@_backend_object_int
-\prop_new:N \g_@@_backend_object_prop
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_backend_object_new:nn}
+% \begin{macro}{\@@_backend_object_new:n}
% \begin{macro}[EXP]{\@@_backend_object_ref:n}
-% Tracking objects is similar to \texttt{dvipdfmx}.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_new:nn #1#2
+\cs_new_protected:Npn \@@_backend_object_new:n #1
{
\int_gincr:N \g_@@_backend_object_int
\int_const:cn
- { c_@@_backend_object_ \tl_to_str:n {#1} _int }
+ { c_@@_object_ \tl_to_str:n {#1} _int }
{ \g_@@_backend_object_int }
- \prop_gput:Nnn \g_@@_backend_object_prop {#1} {#2}
}
\cs_new:Npn \@@_backend_object_ref:n #1
- { { pdf.obj \int_use:c { c_@@_backend_object_ \tl_to_str:n {#1} _int } } }
+ { { pdf.obj \int_use:c { c_@@_object_ \tl_to_str:n {#1} _int } } }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@@_backend_object_write:nn, \@@_backend_object_write:nx}
+% \begin{macro}
+% {
+% \@@_backend_object_write:nnn, \@@_backend_object_write:nnx,
+% \@@_backend_object_write_aux:nnn
+% }
% \begin{macro}
% {
% \@@_backend_object_write_array:nn ,
@@ -141,16 +142,23 @@
% }
% \begin{macro}{\@@_backend_object_write_stream:nnn}
% This is where we choose the actual type: some work to get things
-% right.
+% right. To allow code sharing with the anonymous version, we use an
+% auxiliary.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_write:nn #1#2
+\cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3
+ {
+ \@@_backend_object_write_aux:nnn
+ { \@@_backend_object_ref:n {#1} }
+ {#2} {#3}
+ }
+\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx }
+\cs_new_protected:Npn \@@_backend_object_write_aux:nnn #1#2#3
{
\@@_backend_pdfmark:x
{
- /_objdef ~ \@@_backend_object_ref:n {#1}
+ /_objdef ~ #1
/type
- \str_case_e:nn
- { \prop_item:Nn \g_@@_backend_object_prop {#1} }
+ \str_case:nn {#2}
{
{ array } { /array }
{ dict } { /dict }
@@ -159,11 +167,8 @@
}
/OBJ
}
- \use:c
- { @@_backend_object_write_ \prop_item:Nn \g_@@_backend_object_prop {#1} :nn }
- { \@@_backend_object_ref:n {#1} } {#2}
+ \use:c { @@_backend_object_write_ #2 :nn } {#1} {#3}
}
-\cs_generate_variant:Nn \@@_backend_object_write:nn { nx }
\cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2
{
\@@_backend_pdfmark:x
@@ -213,22 +218,9 @@
\cs_new_protected:Npn \@@_backend_object_now:nn #1#2
{
\int_gincr:N \g_@@_backend_object_int
- \@@_backend_pdfmark:x
- {
- /_objdef ~ { pdf.obj \int_use:N \g_@@_backend_object_int }
- /type
- \str_case:nn
- {#1}
- {
- { array } { /array }
- { dict } { /dict }
- { fstream } { /stream }
- { stream } { /stream }
- }
- /OBJ
- }
- \exp_args:Nnx \use:c { @@_backend_object_write_ #1 :nn }
- { { pdf.obj \int_use:N \g_@@_backend_object_int } } {#2}
+ \@@_backend_object_write_aux:nnn
+ { { pdf.obj \int_use:N \g_@@_backend_object_int } }
+ {#1} {#2}
}
\cs_generate_variant:Nn \@@_backend_object_now:nn { nx }
% \end{macrocode}
@@ -971,12 +963,12 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_backend_object_new:nn}
+% \begin{macro}{\@@_backend_object_new:n}
% \begin{macro}[EXP]{\@@_backend_object_ref:n}
% Declaring objects means reserving at the PDF level plus starting
% tracking.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_new:nn #1#2
+\cs_new_protected:Npn \@@_backend_object_new:n #1
{
%<*luatex>
\tex_pdfextension:D obj ~
@@ -986,27 +978,27 @@
%</pdftex>
reserveobjnum ~
\int_const:cn
- { c_@@_backend_object_ \tl_to_str:n {#1} _int }
+ { c_@@_object_ \tl_to_str:n {#1} _int }
%<*luatex>
{ \tex_pdffeedback:D lastobj }
%</luatex>
%<*pdftex>
{ \tex_pdflastobj:D }
%</pdftex>
- \prop_gput:Nnn \g_@@_backend_object_prop {#1} {#2}
}
\cs_new:Npn \@@_backend_object_ref:n #1
- { \int_use:c { c_@@_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
+ { \int_use:c { c_@@_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@@_backend_object_write:nn,\@@_backend_object_write:nx}
+% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx}
+% \begin{macro}[EXP]{\@@_backend_object_write:nn}
% \begin{macro}[EXP]{\@@_exp_not_i:nn, \@@_exp_not_ii:nn}
% Writing the data needs a little information about the structure of the
% object.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_write:nn #1#2
+\cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3
{
%<*luatex>
\tex_immediate:D \tex_pdfextension:D obj ~
@@ -1016,9 +1008,12 @@
%</pdftex>
useobjnum ~
\int_use:c
- { c_@@_backend_object_ \tl_to_str:n {#1} _int }
- \str_case_e:nn
- { \prop_item:Nn \g_@@_backend_object_prop {#1} }
+ { c_@@_object_ \tl_to_str:n {#1} _int }
+ \@@_backend_object_write:nn {#2} {#3}
+ }
+\cs_new:Npn \@@_backend_object_write:nn #1#2
+ {
+ \str_case:nn {#1}
{
{ array } { { [ ~ \exp_not:n {#2} ~ ] } }
{ dict } { { << ~ \exp_not:n {#2} ~ >> } }
@@ -1034,12 +1029,13 @@
}
}
}
-\cs_generate_variant:Nn \@@_backend_object_write:nn { nx }
+\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx }
\cs_new:Npn \@@_exp_not_i:nn #1#2 { \exp_not:n {#1} }
\cs_new:Npn \@@_exp_not_ii:nn #1#2 { \exp_not:n {#2} }
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx}
% Much like writing, but direct creation.
@@ -1052,22 +1048,7 @@
%<*pdftex>
\tex_immediate:D \tex_pdfobj:D
%</pdftex>
- \str_case:nn
- {#1}
- {
- { array } { { [ ~ \exp_not:n {#2} ~ ] } }
- { dict } { { << ~ \exp_not:n {#2} ~ >> } }
- { fstream }
- {
- stream ~ attr ~ { \@@_exp_not_i:nn #2 } ~
- file ~ { \@@_exp_not_ii:nn #2 }
- }
- { stream }
- {
- stream ~ attr ~ { \@@_exp_not_i:nn #2 } ~
- { \@@_exp_not_ii:nn #2 }
- }
- }
+ \@@_backend_object_write:nn {#1} {#2}
}
\cs_generate_variant:Nn \@@_backend_object_now:nn { nx }
% \end{macrocode}
@@ -1267,27 +1248,25 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_backend_object_new:nn}
+% \begin{macro}{\@@_backend_object_new:n}
% \begin{macro}[EXP]{\@@_backend_object_ref:n}
% Objects are tracked at the macro level, but we don't have to do anything
% at this stage.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_new:nn #1#2
+\cs_new_protected:Npn \@@_backend_object_new:n #1
{
\int_gincr:N \g_@@_backend_object_int
\int_const:cn
- { c_@@_backend_object_ \tl_to_str:n {#1} _int }
+ { c_@@_object_ \tl_to_str:n {#1} _int }
{ \g_@@_backend_object_int }
- \prop_gput:Nnn \g_@@_backend_object_prop {#1} {#2}
}
\cs_new:Npn \@@_backend_object_ref:n #1
- { @pdf.obj \int_use:c { c_@@_backend_object_ \tl_to_str:n {#1} _int } }
+ { @pdf.obj \int_use:c { c_@@_object_ \tl_to_str:n {#1} _int } }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\@@_backend_object_write:nn, \@@_backend_object_write:nx}
-% \begin{macro}{\@@_backend_object_write:nnn}
+% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx}
% \begin{macro}
% {
% \@@_backend_object_write_array:nn ,
@@ -1298,17 +1277,12 @@
% \begin{macro}{\@@_backend_object_write_stream:nnnn}
% This is where we choose the actual type.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_write:nn #1#2
- {
- \exp_args:Nx \@@_backend_object_write:nnn
- { \prop_item:Nn \g_@@_backend_object_prop {#1} } {#1} {#2}
- }
-\cs_generate_variant:Nn \@@_backend_object_write:nn { nx }
\cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3
{
- \use:c { @@_backend_object_write_ #1 :nn }
- { \@@_backend_object_ref:n {#2} } {#3}
+ \use:c { @@_backend_object_write_ #2 :nn }
+ { \@@_backend_object_ref:n {#1} } {#3}
}
+\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx }
\cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2
{
\@@_backend:x
@@ -1335,7 +1309,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx}
% No anonymous objects with \texttt{dvipdfmx} so we have to give an
@@ -1659,18 +1632,18 @@
%
% \subsubsection{Objects}
%
-% \begin{macro}{\@@_backend_object_new:nn}
+% \begin{macro}{\@@_backend_object_new:n}
% \begin{macro}[EXP]{\@@_backend_object_ref:n}
-% \begin{macro}{\@@_backend_object_write:nn, , \@@_backend_object_write:nx}
+% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nx}
% \begin{macro}{\@@_backend_object_now:nn, , \@@_backend_object_now:nx}
% \begin{macro}{\@@_backend_object_last:}
% \begin{macro}[EXP]{\@@_backend_pageobject_ref:n}
% All no-ops here.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_object_new:nn #1#2 { }
+\cs_new_protected:Npn \@@_backend_object_new:nn #1 { }
\cs_new:Npn \@@_backend_object_ref:n #1 { }
-\cs_new_protected:Npn \@@_backend_object_write:nn #1#2 { }
-\cs_new_protected:Npn \@@_backend_object_write:nx #1#2 { }
+\cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3 { }
+\cs_new_protected:Npn \@@_backend_object_write:nnx #1#2#3 { }
\cs_new_protected:Npn \@@_backend_object_now:nn #1#2 { }
\cs_new_protected:Npn \@@_backend_object_now:nx #1#2 { }
\cs_new:Npn \@@_backend_object_last: { }
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
index 7146ee10cdc..67f92072dcd 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvipdfmx.def}{2022-08-23}{}
+ {l3backend-dvipdfmx.def}{2022-08-30}{}
{L3 backend support: dvipdfmx}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -147,8 +147,8 @@
{
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{ /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
}
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
@@ -158,8 +158,8 @@
{
\pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 }
{
- \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array }
- \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_new:n { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array }
{
/Lab ~
<<
@@ -202,8 +202,8 @@
}
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{
/DeviceN ~
[ ~ #1 ~ ] ~
@@ -224,8 +224,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nx { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnx { __color_icc_ #1 } { fstream }
{
{
/N ~ \exp_not:n { #2 } ~
@@ -242,8 +242,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nn { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnn { __color_icc_ #1 } { fstream }
{
{ /N ~ #3 }
{#1}
@@ -625,27 +625,21 @@
{ \__pdf_backend:n { docinfo << /#1 ~ #2 >> } }
\int_new:N \g__pdf_backend_object_int
\prop_new:N \g__pdf_backend_object_prop
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_object_new:n #1
{
\int_gincr:N \g__pdf_backend_object_int
\int_const:cn
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
{ \g__pdf_backend_object_int }
- \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { @pdf.obj \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
- {
- \exp_args:Nx \__pdf_backend_object_write:nnn
- { \prop_item:Nn \g__pdf_backend_object_prop {#1} } {#1} {#2}
- }
-\cs_generate_variant:Nn \__pdf_backend_object_write:nn { nx }
+ { @pdf.obj \int_use:c { c__pdf_object_ \tl_to_str:n {#1} _int } }
\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3
{
- \use:c { __pdf_backend_object_write_ #1 :nn }
- { \__pdf_backend_object_ref:n {#2} } {#3}
+ \use:c { __pdf_backend_object_write_ #2 :nn }
+ { \__pdf_backend_object_ref:n {#1} } {#3}
}
+\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx }
\cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2
{
\__pdf_backend:x
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
index b7efe7a693e..c20decfc84d 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvips.def}{2022-08-23}{}
+ {l3backend-dvips.def}{2022-08-30}{}
{L3 backend support: dvips}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -636,25 +636,29 @@
\cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2
{ \__pdf_backend_pdfmark:n { /#1 ~ #2 /DOCINFO } }
\int_new:N \g__pdf_backend_object_int
-\prop_new:N \g__pdf_backend_object_prop
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_object_new:n #1
{
\int_gincr:N \g__pdf_backend_object_int
\int_const:cn
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
{ \g__pdf_backend_object_int }
- \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { { pdf.obj \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } } }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
+ { { pdf.obj \int_use:c { c__pdf_object_ \tl_to_str:n {#1} _int } } }
+\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3
+ {
+ \__pdf_backend_object_write_aux:nnn
+ { \__pdf_backend_object_ref:n {#1} }
+ {#2} {#3}
+ }
+\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx }
+\cs_new_protected:Npn \__pdf_backend_object_write_aux:nnn #1#2#3
{
\__pdf_backend_pdfmark:x
{
- /_objdef ~ \__pdf_backend_object_ref:n {#1}
+ /_objdef ~ #1
/type
- \str_case_e:nn
- { \prop_item:Nn \g__pdf_backend_object_prop {#1} }
+ \str_case:nn {#2}
{
{ array } { /array }
{ dict } { /dict }
@@ -663,11 +667,8 @@
}
/OBJ
}
- \use:c
- { __pdf_backend_object_write_ \prop_item:Nn \g__pdf_backend_object_prop {#1} :nn }
- { \__pdf_backend_object_ref:n {#1} } {#2}
+ \use:c { __pdf_backend_object_write_ #2 :nn } {#1} {#3}
}
-\cs_generate_variant:Nn \__pdf_backend_object_write:nn { nx }
\cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2
{
\__pdf_backend_pdfmark:x
@@ -709,22 +710,9 @@
\cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2
{
\int_gincr:N \g__pdf_backend_object_int
- \__pdf_backend_pdfmark:x
- {
- /_objdef ~ { pdf.obj \int_use:N \g__pdf_backend_object_int }
- /type
- \str_case:nn
- {#1}
- {
- { array } { /array }
- { dict } { /dict }
- { fstream } { /stream }
- { stream } { /stream }
- }
- /OBJ
- }
- \exp_args:Nnx \use:c { __pdf_backend_object_write_ #1 :nn }
- { { pdf.obj \int_use:N \g__pdf_backend_object_int } } {#2}
+ \__pdf_backend_object_write_aux:nnn
+ { { pdf.obj \int_use:N \g__pdf_backend_object_int } }
+ {#1} {#2}
}
\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx }
\cs_new:Npn \__pdf_backend_object_last:
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
index 3f20aef6ff2..a471691cef3 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-dvisvgm.def}{2022-08-23}{}
+ {l3backend-dvisvgm.def}{2022-08-30}{}
{L3 backend support: dvisvgm}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -657,10 +657,10 @@
\cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4 { }
\cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2 { }
\cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2 { }
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_new:nn #1 { }
\cs_new:Npn \__pdf_backend_object_ref:n #1 { }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2 { }
-\cs_new_protected:Npn \__pdf_backend_object_write:nx #1#2 { }
+\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3 { }
+\cs_new_protected:Npn \__pdf_backend_object_write:nnx #1#2#3 { }
\cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 { }
\cs_new_protected:Npn \__pdf_backend_object_now:nx #1#2 { }
\cs_new:Npn \__pdf_backend_object_last: { }
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
index 9be080803a7..82de7e19712 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-luatex.def}{2022-08-23}{}
+ {l3backend-luatex.def}{2022-08-30}{}
{L3 backend support: PDF output (LuaTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -205,8 +205,8 @@
{
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{ /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
}
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
@@ -216,8 +216,8 @@
{
\pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 }
{
- \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array }
- \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_new:n { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array }
{
/Lab ~
<<
@@ -260,8 +260,8 @@
}
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{
/DeviceN ~
[ ~ #1 ~ ] ~
@@ -282,8 +282,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nx { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnx { __color_icc_ #1 } { fstream }
{
{
/N ~ \exp_not:n { #2 } ~
@@ -300,8 +300,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nn { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnn { __color_icc_ #1 } { fstream }
{
{ /N ~ #3 }
{#1}
@@ -736,25 +736,27 @@
{ / #1 ~ #2 }
}
\prop_new:N \g__pdf_backend_object_prop
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_object_new:n #1
{
\tex_pdfextension:D obj ~
reserveobjnum ~
\int_const:cn
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
{ \tex_pdffeedback:D lastobj }
- \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
+ { \int_use:c { c__pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
+\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3
{
\tex_immediate:D \tex_pdfextension:D obj ~
useobjnum ~
\int_use:c
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
- \str_case_e:nn
- { \prop_item:Nn \g__pdf_backend_object_prop {#1} }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
+ \__pdf_backend_object_write:nn {#2} {#3}
+ }
+\cs_new:Npn \__pdf_backend_object_write:nn #1#2
+ {
+ \str_case:nn {#1}
{
{ array } { { [ ~ \exp_not:n {#2} ~ ] } }
{ dict } { { << ~ \exp_not:n {#2} ~ >> } }
@@ -770,28 +772,13 @@
}
}
}
-\cs_generate_variant:Nn \__pdf_backend_object_write:nn { nx }
+\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx }
\cs_new:Npn \__pdf_exp_not_i:nn #1#2 { \exp_not:n {#1} }
\cs_new:Npn \__pdf_exp_not_ii:nn #1#2 { \exp_not:n {#2} }
\cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2
{
\tex_immediate:D \tex_pdfextension:D obj ~
- \str_case:nn
- {#1}
- {
- { array } { { [ ~ \exp_not:n {#2} ~ ] } }
- { dict } { { << ~ \exp_not:n {#2} ~ >> } }
- { fstream }
- {
- stream ~ attr ~ { \__pdf_exp_not_i:nn #2 } ~
- file ~ { \__pdf_exp_not_ii:nn #2 }
- }
- { stream }
- {
- stream ~ attr ~ { \__pdf_exp_not_i:nn #2 } ~
- { \__pdf_exp_not_ii:nn #2 }
- }
- }
+ \__pdf_backend_object_write:nn {#1} {#2}
}
\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx }
\cs_new:Npx \__pdf_backend_object_last:
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
index 4d5b03c068b..ef45c26770f 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-pdftex.def}{2022-08-23}{}
+ {l3backend-pdftex.def}{2022-08-30}{}
{L3 backend support: PDF output (pdfTeX)}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -205,8 +205,8 @@
{
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{ /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
}
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
@@ -216,8 +216,8 @@
{
\pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 }
{
- \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array }
- \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_new:n { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array }
{
/Lab ~
<<
@@ -260,8 +260,8 @@
}
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{
/DeviceN ~
[ ~ #1 ~ ] ~
@@ -282,8 +282,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nx { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnx { __color_icc_ #1 } { fstream }
{
{
/N ~ \exp_not:n { #2 } ~
@@ -300,8 +300,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nn { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnn { __color_icc_ #1 } { fstream }
{
{ /N ~ #3 }
{#1}
@@ -736,25 +736,27 @@
{ / #1 ~ #2 }
}
\prop_new:N \g__pdf_backend_object_prop
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_object_new:n #1
{
\tex_pdfobj:D
reserveobjnum ~
\int_const:cn
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
{ \tex_pdflastobj:D }
- \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
+ { \int_use:c { c__pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
+\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3
{
\tex_immediate:D \tex_pdfobj:D
useobjnum ~
\int_use:c
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
- \str_case_e:nn
- { \prop_item:Nn \g__pdf_backend_object_prop {#1} }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
+ \__pdf_backend_object_write:nn {#2} {#3}
+ }
+\cs_new:Npn \__pdf_backend_object_write:nn #1#2
+ {
+ \str_case:nn {#1}
{
{ array } { { [ ~ \exp_not:n {#2} ~ ] } }
{ dict } { { << ~ \exp_not:n {#2} ~ >> } }
@@ -770,28 +772,13 @@
}
}
}
-\cs_generate_variant:Nn \__pdf_backend_object_write:nn { nx }
+\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx }
\cs_new:Npn \__pdf_exp_not_i:nn #1#2 { \exp_not:n {#1} }
\cs_new:Npn \__pdf_exp_not_ii:nn #1#2 { \exp_not:n {#2} }
\cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2
{
\tex_immediate:D \tex_pdfobj:D
- \str_case:nn
- {#1}
- {
- { array } { { [ ~ \exp_not:n {#2} ~ ] } }
- { dict } { { << ~ \exp_not:n {#2} ~ >> } }
- { fstream }
- {
- stream ~ attr ~ { \__pdf_exp_not_i:nn #2 } ~
- file ~ { \__pdf_exp_not_ii:nn #2 }
- }
- { stream }
- {
- stream ~ attr ~ { \__pdf_exp_not_i:nn #2 } ~
- { \__pdf_exp_not_ii:nn #2 }
- }
- }
+ \__pdf_backend_object_write:nn {#1} {#2}
}
\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx }
\cs_new:Npx \__pdf_backend_object_last:
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
index 29e2cc7c183..d171fc435d9 100644
--- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
+++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
@@ -26,7 +26,7 @@
%%
%% File: l3backend-basics.dtx
\ProvidesExplFile
- {l3backend-xetex.def}{2022-08-23}{}
+ {l3backend-xetex.def}{2022-08-30}{}
{L3 backend support: XeTeX}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
@@ -147,8 +147,8 @@
{
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{ /Separation /#1 ~ #2 ~ \pdf_object_ref_last: }
}
\prop_gput:Nnx \g__color_backend_colorant_prop { /#1 }
@@ -158,8 +158,8 @@
{
\pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 }
{
- \pdf_object_new:nn { __color_illuminant_CIELAB_ #1 } { array }
- \pdf_object_write:nx { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_new:n { __color_illuminant_CIELAB_ #1 }
+ \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array }
{
/Lab ~
<<
@@ -202,8 +202,8 @@
}
\use:x
{
- \pdf_object_new:nn { color \int_use:N \g__color_model_int } { array }
- \pdf_object_write:nn { color \int_use:N \g__color_model_int }
+ \pdf_object_new:n { color \int_use:N \g__color_model_int }
+ \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array }
{
/DeviceN ~
[ ~ #1 ~ ] ~
@@ -224,8 +224,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nx { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnx { __color_icc_ #1 } { fstream }
{
{
/N ~ \exp_not:n { #2 } ~
@@ -242,8 +242,8 @@
{
\pdf_object_if_exist:nF { __color_icc_ #1 }
{
- \pdf_object_new:nn { __color_icc_ #1 } { fstream }
- \pdf_object_write:nn { __color_icc_ #1 }
+ \pdf_object_new:n { __color_icc_ #1 }
+ \pdf_object_write:nnn { __color_icc_ #1 } { fstream }
{
{ /N ~ #3 }
{#1}
@@ -679,27 +679,21 @@
{ \__pdf_backend:n { docinfo << /#1 ~ #2 >> } }
\int_new:N \g__pdf_backend_object_int
\prop_new:N \g__pdf_backend_object_prop
-\cs_new_protected:Npn \__pdf_backend_object_new:nn #1#2
+\cs_new_protected:Npn \__pdf_backend_object_new:n #1
{
\int_gincr:N \g__pdf_backend_object_int
\int_const:cn
- { c__pdf_backend_object_ \tl_to_str:n {#1} _int }
+ { c__pdf_object_ \tl_to_str:n {#1} _int }
{ \g__pdf_backend_object_int }
- \prop_gput:Nnn \g__pdf_backend_object_prop {#1} {#2}
}
\cs_new:Npn \__pdf_backend_object_ref:n #1
- { @pdf.obj \int_use:c { c__pdf_backend_object_ \tl_to_str:n {#1} _int } }
-\cs_new_protected:Npn \__pdf_backend_object_write:nn #1#2
- {
- \exp_args:Nx \__pdf_backend_object_write:nnn
- { \prop_item:Nn \g__pdf_backend_object_prop {#1} } {#1} {#2}
- }
-\cs_generate_variant:Nn \__pdf_backend_object_write:nn { nx }
+ { @pdf.obj \int_use:c { c__pdf_object_ \tl_to_str:n {#1} _int } }
\cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3
{
- \use:c { __pdf_backend_object_write_ #1 :nn }
- { \__pdf_backend_object_ref:n {#2} } {#3}
+ \use:c { __pdf_backend_object_write_ #2 :nn }
+ { \__pdf_backend_object_ref:n {#1} } {#3}
}
+\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx }
\cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2
{
\__pdf_backend:x