[latex3-commits] [git/LaTeX3-latex3-pdfresources] splitting: backend code (a9ddd0a)

Ulrike Fischer fischer at troubleshooting-tex.de
Tue Jul 7 19:15:53 CEST 2020


Repository : https://github.com/latex3/pdfresources
On branch  : splitting
Link       : https://github.com/latex3/pdfresources/commit/a9ddd0ac395cb4f337a3e96d71ec49a2247f40be

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

commit a9ddd0ac395cb4f337a3e96d71ec49a2247f40be
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Sun Jun 14 00:03:41 2020 +0200

    backend code


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

a9ddd0ac395cb4f337a3e96d71ec49a2247f40be
 l3pdfgdict.dtx   | 169 ++++++++++++++++++++++++++
 pdfresources.dtx | 364 +++++++++++++++----------------------------------------
 2 files changed, 270 insertions(+), 263 deletions(-)

diff --git a/l3pdfgdict.dtx b/l3pdfgdict.dtx
index 3a24fa2..56616c7 100644
--- a/l3pdfgdict.dtx
+++ b/l3pdfgdict.dtx
@@ -1101,6 +1101,175 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% %
+% \paragraph{Building catalog entries: MarkInfo}
+% \begin{macro}{\@@_/Catalog/MarkInfo_gpush:}
+%    \begin{macrocode}
+\cs_new_protected:cpn { @@_/Catalog/MarkInfo_gpush: }
+  {
+    \prop_if_empty:cF
+     { \@@_name:n { Catalog/MarkInfo } }
+     {
+       \@@_backend_object_new:nn  { g_@@_/Catalog/MarkInfo_obj } { dict }
+       \exp_args:Nnx
+         \@@_backend_object_write:nn
+            { g_@@_/Catalog/MarkInfo_obj }
+            { \@@_map:n {Catalog/MarkInfo } }
+       \exp_args:Nnx
+         \@@_backend_catalog_gput:nn
+           {MarkInfo}
+           {
+             \@@_backend_object_ref:n {g_@@_/Catalog/MarkInfo_obj}
+           }
+     }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%\paragraph{Building catalog entries: OCProperties}
+%  This is a dictionary with three entries:
+%  \begin{description}
+%  \item[/OCGs] (required) An array of indirect references,
+%               access needed for more than one package.
+%  \item[/D] (required) a dict (given as an object name) to the default
+%            configuration
+%  \item[/Configs] (optional) an array of indirect references to more
+%        configurations.
+%  \end{description}
+%  The /D entry is also a config, it is the first of the seq.
+%  The overall structure is nested: a dict with arrays.
+% \begin{macro}{\@@_/Catalog/OCProperties_gpush:}
+%    \begin{macrocode}
+% Catalog/OCProperties: OCGs + D is required
+\cs_new_protected:cpn { @@_/Catalog/OCProperties_gpush: }
+  {
+   \int_compare:nNnT
+      {
+        ( \seq_count:c { g_@@_/Catalog/OCProperties/OCGs_seq }  )*
+        ( \seq_count:c { g_@@_/Catalog/OCProperties/Configs_seq } )
+      }
+      >
+      { 0 }
+      {
+        \@@_backend_object_new:nn  { g_@@_/Catalog/OCProperties_obj } { dict }
+        \seq_gpop_left:cN { g_@@_/Catalog/OCProperties/Configs_seq} \l_tmpa_tl
+        \exp_args:Nnx
+          \@@_backend_object_write:nn {g_@@_/Catalog/OCProperties_obj}
+            {
+              /OCGs~[ \seq_use:cn { g_@@_/Catalog/OCProperties/OCGs_seq } {~} ]
+              /D~\l_tmpa_tl~
+              \seq_if_empty:cF { g_@@_/Catalog/OCProperties/Configs_seq }
+                {
+                  /Configs~
+                  [ \seq_use:cn { g_@@_/Catalog/OCProperties/Configs_seq} {~} ]
+                }
+            }
+        \exp_args:Nnx
+          \@@_backend_catalog_gput:nn
+            { OCProperties }
+            { \@@_backend_object_ref:n {g_@@_/Catalog/OCProperties_obj} }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Building catalog entries: OutputIntents}
+% OutputIntents is an array.
+% \begin{macro}{\@@_/Catalog/OutputIntents_gpush:}
+%    \begin{macrocode}
+\cs_new_protected:cpn { @@_/Catalog/OutputIntents_gpush: }
+  {
+    \seq_if_empty:cF
+     { g_@@_/Catalog/OutputIntents_seq }
+     {
+       \@@_backend_object_new:nn  { g_@@_/Catalog/OutputIntents_obj } { array }
+       \exp_args:Nnx
+         \@@_backend_object_write:nn
+            { g_@@_/Catalog/OutputIntents_obj }
+            { \seq_use:cn { g_@@_/Catalog/OutputIntents_seq } {~} }
+       \exp_args:Nnx
+         \@@_backend_catalog_gput:nn
+           {OutputIntents}
+           {
+             \@@_backend_object_ref:n {g_@@_/Catalog/OutputIntents_obj}
+           }
+     }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Building catalog entries: Requirements}
+% Requirements  is an array.
+% \begin{macro}{\@@_/Catalog/Requirements_gpush:}
+%    \begin{macrocode}
+\cs_new_protected:cpn { @@_/Catalog/Requirements_gpush: }
+  {
+    \seq_if_empty:cF
+     { g_@@_/Catalog/Requirements_seq }
+     {
+       \@@_backend_object_new:nn  { g_@@_/Catalog/Requirements_obj } { array }
+       \exp_args:Nnx
+         \@@_backend_object_write:nn
+            { g_@@_/Catalog/Requirements_obj }
+            { \seq_use:cn { g_@@_/Catalog/Requirements_seq } {~} }
+       \exp_args:Nnx
+         \@@_backend_catalog_gput:nn
+           {Requirements}
+           {
+             \@@_backend_object_ref:n { g_@@_/Catalog/Requirements_obj }
+           }
+     }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \paragraph{Building catalog entries: ViewerPreferences}
+% \begin{macro}{\@@_/Catalog/ViewerPreferences_gpush:}
+%    \begin{macrocode}
+\cs_new_protected:cpn { @@_/Catalog/ViewerPreferences_gpush: }
+  {
+    \prop_if_empty:cF
+     { \@@_name:n { Catalog/ViewerPreferences } }
+     {
+       \@@_backend_object_new:nn  { g_@@_/Catalog/ViewerPreferences_obj } { dict }
+       \exp_args:Nnx
+         \@@_backend_object_write:nn
+            { g_@@_/Catalog/ViewerPreferences_obj }
+            { \@@_map:n {Catalog/ViewerPreferences } }
+       \exp_args:Nnx
+         \@@_backend_catalog_gput:nn
+           {ViewerPreferences}
+           {
+             \@@_backend_object_ref:n {g_@@_/Catalog/ViewerPreferences_obj}
+           }
+     }
+  }
+%    \end{macrocode}
+% \end{macro}
+% % \paragraph{Building catalog entries: Names/EmbeddedFiles}
+% The entry should only be added if there are actually embedded files.
+% This can be tested by checking the names_seq
+% \begin{macro}{\@@_/Catalog/Names/EmbeddedFiles_gpush:}
+%    \begin{macrocode}
+% !!!!!!!!!!!!!!! how to name this seq????
+\seq_new:N \g__pdf_file_tree_name_seq
+\cs_new_protected:cpn { @@_/Catalog/Names/EmbeddedFiles_gpush: }
+  {
+    \seq_if_empty:NF \g__pdf_file_tree_name_seq
+      {
+        \exp_args:Nx \@@_backend_NamesEmbeddedFiles_gpush:n
+          {
+            \seq_use:Nn \g__pdf_file_tree_name_seq {~}
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \subsection{ xform / Properties }
+%    \begin{macrocode}
+\@@_new:n {xform/Resources/Properties}
+%    \end{macrocode}
 %    \begin{macrocode}
 %</package>
 %    \end{macrocode}
diff --git a/pdfresources.dtx b/pdfresources.dtx
index d5cc7d5..fedccc0 100644
--- a/pdfresources.dtx
+++ b/pdfresources.dtx
@@ -902,170 +902,7 @@
 % /Acroform/DR/ExtGState etc probably unneeded.
 % \end{NOTE}
 %
-
-
-%
-% \paragraph{Building catalog entries: MarkInfo}
-% \begin{macro}{\@@_dict_/Catalog/MarkInfo_gpush:}
-%    \begin{macrocode}
-\cs_new_protected:cpn { @@_dict_/Catalog/MarkInfo_gpush: }
-  {
-    \prop_if_empty:cF
-     { \@@_dict_gname:n { Catalog/MarkInfo } }
-     {
-       \@@_backend_object_new:nn  { g_@@_dict_/Catalog/MarkInfo_obj } { dict }
-       \exp_args:Nnx
-         \@@_backend_object_write:nn
-            { g_@@_dict_/Catalog/MarkInfo_obj }
-            { \@@_dict_map:n {Catalog/MarkInfo } }
-       \exp_args:Nnx
-         \@@_backend_catalog_gput:nn
-           {MarkInfo}
-           {
-             \@@_backend_object_ref:n {g_@@_dict_/Catalog/MarkInfo_obj}
-           }
-     }
-  }
-%    \end{macrocode}
-% \end{macro}
-%\paragraph{Building catalog entries: OCProperties}
-%  This is a dictionary with three entries:
-%  \begin{description}
-%  \item[/OCGs] (required) An array of indirect references,
-%               access needed for more than one package.
-%  \item[/D] (required) a dict (given as an object name) to the default
-%            configuration
-%  \item[/Configs] (optional) an array of indirect references to more
-%        configurations.
-%  \end{description}
-%  The /D entry is also a config, it is the first of the seq.
-%  The overall structure is nested: a dict with arrays.
-% \begin{macro}{\@@_dict_/Catalog/OCProperties_gpush:}
-%    \begin{macrocode}
-% Catalog/OCProperties: OCGs + D is required
-\cs_new_protected:cpn { @@_dict_/Catalog/OCProperties_gpush: }
-  {
-   \int_compare:nNnT
-      {
-        ( \seq_count:c { g_@@_dict_/Catalog/OCProperties/OCGs_seq }  )*
-        ( \seq_count:c { g_@@_dict_/Catalog/OCProperties/Configs_seq } )
-      }
-      >
-      { 0 }
-      {
-        \@@_backend_object_new:nn  { g_@@_dict_/Catalog/OCProperties_obj } { dict }
-        \seq_gpop_left:cN { g_@@_dict_/Catalog/OCProperties/Configs_seq} \l_tmpa_tl
-        \exp_args:Nnx
-          \@@_backend_object_write:nn {g_@@_dict_/Catalog/OCProperties_obj}
-            {
-              /OCGs~[ \seq_use:cn { g_@@_dict_/Catalog/OCProperties/OCGs_seq } {~} ]
-              /D~\l_tmpa_tl~
-              \seq_if_empty:cF { g_@@_dict_/Catalog/OCProperties/Configs_seq }
-                {
-                  /Configs~
-                  [ \seq_use:cn { g_@@_dict_/Catalog/OCProperties/Configs_seq} {~} ]
-                }
-            }
-        \exp_args:Nnx
-          \@@_backend_catalog_gput:nn
-            { OCProperties }
-            { \@@_backend_object_ref:n {g_@@_dict_/Catalog/OCProperties_obj} }
-      }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Building catalog entries: OutputIntents}
-% OutputIntents is an array.
-% \begin{macro}{\@@_dict_/Catalog/OutputIntents_gpush:}
-%    \begin{macrocode}
-\cs_new_protected:cpn { @@_dict_/Catalog/OutputIntents_gpush: }
-  {
-    \seq_if_empty:cF
-     { g_@@_dict_/Catalog/OutputIntents_seq }
-     {
-       \@@_backend_object_new:nn  { g_@@_dict_/Catalog/OutputIntents_obj } { array }
-       \exp_args:Nnx
-         \@@_backend_object_write:nn
-            { g_@@_dict_/Catalog/OutputIntents_obj }
-            { \seq_use:cn { g_@@_dict_/Catalog/OutputIntents_seq } {~} }
-       \exp_args:Nnx
-         \@@_backend_catalog_gput:nn
-           {OutputIntents}
-           {
-             \@@_backend_object_ref:n {g_@@_dict_/Catalog/OutputIntents_obj}
-           }
-     }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Building catalog entries: Requirements}
-% Requirements  is an array.
-% \begin{macro}{\@@_dict_/Catalog/Requirements _gpush:}
-%    \begin{macrocode}
-\cs_new_protected:cpn { @@_dict_/Catalog/Requirements _gpush: }
-  {
-    \seq_if_empty:cF
-     { g_@@_dict_/Catalog/Requirements _seq }
-     {
-       \@@_backend_object_new:nn  { g_@@_dict_/Catalog/Requirements _obj } { array }
-       \exp_args:Nnx
-         \@@_backend_object_write:nn
-            { g_@@_dict_/Catalog/Requirements_obj }
-            { \seq_use:cn { g_@@_dict_/Catalog/Requirements_seq } {~} }
-       \exp_args:Nnx
-         \@@_backend_catalog_gput:nn
-           {Requirements}
-           {
-             \@@_backend_object_ref:n { g_@@_dict_/Catalog/Requirements_obj }
-           }
-     }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Building catalog entries: ViewerPreferences}
-% \begin{macro}{\@@_dict_/Catalog/ViewerPreferences_gpush:}
-%    \begin{macrocode}
-\cs_new_protected:cpn { @@_dict_/Catalog/ViewerPreferences_gpush: }
-  {
-    \prop_if_empty:cF
-     { \@@_dict_gname:n { Catalog/ViewerPreferences } }
-     {
-       \@@_backend_object_new:nn  { g_@@_dict_/Catalog/ViewerPreferences_obj } { dict }
-       \exp_args:Nnx
-         \@@_backend_object_write:nn
-            { g_@@_dict_/Catalog/ViewerPreferences_obj }
-            { \@@_dict_map:n {Catalog/ViewerPreferences } }
-       \exp_args:Nnx
-         \@@_backend_catalog_gput:nn
-           {ViewerPreferences}
-           {
-             \@@_backend_object_ref:n {g_@@_dict_/Catalog/ViewerPreferences_obj}
-           }
-     }
-  }
-%    \end{macrocode}
-% \end{macro}
-% \paragraph{Building catalog entries: Names/EmbeddedFiles}
-% The entry should only be added if there are actually embedded files.
-% This can be tested by checking the names_seq
-% \begin{macro}{\@@_dict_/Catalog/Names/EmbeddedFiles_gpush:}
-%    \begin{macrocode}
-\seq_new:N \g_@@_file_tree_name_seq
-\cs_new_protected:cpn { @@_dict_/Catalog/Names/EmbeddedFiles_gpush: }
-  {
-    \seq_if_empty:NF \g_@@_file_tree_name_seq
-      {
-        \exp_args:Nx \@@_backend_NamesEmbeddedFiles_gpush:n
-          {
-            \seq_use:Nn \g_@@_file_tree_name_seq {~}
-          }
-      }
-  }
-%
-% \subsection{Local dictonaries}
+% \subsection{Local dictionaries}
 %
 % All dictionaries described above were global dictionaries and basically they
 % are written at most once (or at most once per page) to the PDF. The pdfdict module
@@ -1173,106 +1010,106 @@
 %    \begin{macrocode}
 % pdftex and luatex (and perhaps dvips ...) need to know if there are in a
 % xform stream ...
+%<*drivers>
 \bool_new:N \l_@@_backend_xform_bool
-\@@_dict_gnew:n {xform/Resources/Properties}
-
-% dvips
+%</drivers>
+%<*dvips>
 % dvips is easy: create an object, and reference it in the bdc
 % ghostscript will then automatically replace it by a name
 % and add the name to the /Properties dict
 % special variant von accsupp https://chat.stackexchange.com/transcript/message/50831812#50831812
-\bool_if:nT {\sys_if_engine_pdftex_p: && !\sys_if_output_pdf_p: }
+%
+\cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
   {
-    \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
-      {
-        \special {ps:~mark~/#1~\@@_backend_object_ref:n{#2}~/BDC~pdfmark}
-      }
-    \cs_set_protected:Npn \@@_backend_bdc:n #1  % #1 eg. Span,
-      {
-        \special {ps:~mark~/#1~\@@_backend_object_last:~/BDC~pdfmark}
-      }
-    \cs_set_protected:Npn \@@_backend_emc:
-      {
-        \special {ps:~mark~/EMC~pdfmark} %
-      }
-    \cs_set_protected:Npn \@@_backend_bmc:n #1
-      {
-        \special {ps:~mark~/#1~/BMC~pdfmark} %
-      }
-    \cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1 {}
- }
+    \special {ps:~mark~/#1~\@@_backend_object_ref:n{#2}~/BDC~pdfmark}
+  }
+\cs_set_protected:Npn \@@_backend_bdc:n #1  % #1 eg. Span,
+  {
+    \special {ps:~mark~/#1~\@@_backend_object_last:~/BDC~pdfmark}
+  }
+\cs_set_protected:Npn \@@_backend_emc:
+  {
+    \special {ps:~mark~/EMC~pdfmark} %
+  }
+\cs_set_protected:Npn \@@_backend_bmc:n #1
+  {
+    \special {ps:~mark~/#1~/BMC~pdfmark} %
+  }
+\cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1 {}
+
+%</dvips>
 % xetex has to create the entries in the /Properties manually
 % (like the other backends)
 % use pdfbase special
 % https://chat.stackexchange.com/transcript/message/50832016#50832016
 % the property is added to xform resources automatically,
 % no need to worry about it.
-\sys_if_engine_xetex:T
+%<*xdvipdfmx>
+ \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
+   {
+     \int_gincr:N \g_@@_backend_name_int
+     \__kernel_backend_literal:x
+       {
+         pdf:code~/#1/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC
+       }
+     \__kernel_backend_literal:x
+       {
+         pdf:put~@resources~
+           <<
+             /Properties~
+               <<
+                 /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl
+                 \@@_backend_object_ref:n { #2 }
+               >>
+           >>
+       }
+   }
+ \cs_set_protected:Npn \@@_backend_bdc:n #1  % #1 eg. Span
+   {
+     \int_gincr:N \g_@@_backend_name_int
+     \__kernel_backend_literal:x
+       {
+         pdf:code~/#1/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC
+       }
+     \__kernel_backend_literal:x
+       {
+         pdf:put~@resources~
+           <<
+             /Properties~
+               <<
+                 /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl
+                 \@@_backend_object_last:
+               >>
+           >>
+       }
+   }
+\cs_set_protected:Npn \@@_backend_bmc:n #1
+   {
+     \__kernel_backend_literal:n {pdf:code~/#1~BMC}  %pdfbase
+   }
+\cs_set_protected:Npn \@@_backend_emc:
   {
-    \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
-      {
-        \int_gincr:N \g_@@_backend_name_int
-        \__kernel_backend_literal:x
-          {
-            pdf:code~/#1/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC
-          }
-        \__kernel_backend_literal:x
-          {
-            pdf:put~@resources~
-              <<
-                /Properties~
-                  <<
-                    /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl
-                    \@@_backend_object_ref:n { #2 }
-                  >>
-              >>
-          }
-      }
-    \cs_set_protected:Npn \@@_backend_bdc:n #1  % #1 eg. Span
+    \__kernel_backend_literal:n {pdf:code~EMC}  %pdfbase
+  }
+  % properties are handled automatically, but the other resources should be added
+  % at shipout
+\cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1
+  {
+    \clist_map_inline:Nn \c_@@_backend_PageResources_clist
       {
-        \int_gincr:N \g_@@_backend_name_int
-        \__kernel_backend_literal:x
+        \prop_if_empty:cF { \__pdfgdict_name:n {Page/Resources/##1} }
           {
-            pdf:code~/#1/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC
-          }
-        \__kernel_backend_literal:x
-          {
-            pdf:put~@resources~
-              <<
-                /Properties~
-                  <<
-                    /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl
-                    \@@_backend_object_last:
-                  >>
-              >>
+            \__kernel_backend_literal:x
+              {
+                pdf:put~@resources~
+                  <</##1~\@@_backend_object_ref:n {Page/Resources/##1}>>
+              }
           }
       }
- \cs_set_protected:Npn \@@_backend_bmc:n #1
-    {
-      \__kernel_backend_literal:n {pdf:code~/#1~BMC}  %pdfbase
-    }
-  \cs_set_protected:Npn \@@_backend_emc:
-    {
-      \__kernel_backend_literal:n {pdf:code~EMC}  %pdfbase
-    }
-  % properties are handled automatically, but the other resources should be added
-  % at shipout
-  \cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1
-    {
-      \clist_map_inline:Nn \c_@@_backend_PageResources_clist
-        {
-          \prop_if_empty:cF { \@@_dict_gname:n {Page/Resources/##1} }
-            {
-              \__kernel_backend_literal:x
-                {
-                  pdf:put~@resources~
-                    <</##1~\@@_backend_object_ref:n {Page/Resources/##1}>>
-                }
-            }
-        }
-    }
- }
+  }
+%</xdvipdfmx>
 % luatex
+%<*pdfmode>
 \sys_if_engine_luatex:T
   {
     \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
@@ -1282,7 +1119,7 @@
           { /#1 ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC }
         \bool_if:NTF \l_@@_backend_xform_bool
           {
-            \exp_args:Nnx\@@_dict_handler_put:nnn
+            \exp_args:Nnx\__pdfgdict_handler_gput:nnn
               { xform/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_name_int }
               { \@@_backend_object_ref:n { #2 } }
@@ -1306,7 +1143,7 @@
           { /#1 ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC }
         \bool_if:NTF \l_@@_backend_xform_bool
           {
-            \@@_dict_handler_put:nxx
+            \__pdfgdict_handler_gput:nxx
               { xform/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_name_int }
               { \@@_backend_object_last: }
@@ -1337,7 +1174,7 @@
 
 % pdflatex is the most complicated as it has to go through the aux ...
 % the push command is extended to take other resources too
-\bool_if:nT {\sys_if_engine_pdftex_p: && \sys_if_output_pdf_p: }
+\sys_if_engine_pdftex:T
   {
     \cs_set_protected:Npn \@@_backend_bdc:nn #1 #2 % #1 eg. Span, #2: object name
       {
@@ -1348,7 +1185,7 @@
         \int_gincr:N\g_@@_backend_resourceid_int
         \bool_if:NTF \l_@@_backend_xform_bool
           {
-            \@@_dict_handler_put:nxx
+            \__pdfgdict_handler_gput:nxx
               { xform/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_resourceid_int }
               { \@@_backend_object_ref:n { #2 } }
@@ -1364,11 +1201,11 @@
                   {pdf at abspage}
                   {0}
               }
-            \@@_dict_if_exist:nF { backend_Page\l_@@_tmpa_tl/Resources/Properties }
+            \pdfgdict_if_exist:nF { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               {
-                \@@_dict_gnew:n  { backend_Page\l_@@_tmpa_tl/Resources/Properties }
+                \__pdfgdict_new:n  { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               }
-            \@@_dict_handler_put:nxx
+            \__pdfgdict_handler_gput:nxx
               { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_resourceid_int }
               { \@@_backend_object_ref:n{#2} }
@@ -1383,7 +1220,7 @@
         \int_gincr:N\g_@@_backend_resourceid_int
         \bool_if:NTF \l_@@_backend_xform_bool
           {
-            \@@_dict_handler_put:nxx
+            \__pdfgdict_handler_gput:nxx
               { xform/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_resourceid_int }
               { \@@_backend_object_last: }
@@ -1399,15 +1236,15 @@
                   {pdf at abspage}
                   {0}
               }
-            \@@_dict_if_exist:nF { backend_Page\l_@@_tmpa_tl/Resources/Properties }
+            \pdfgdict_if_exist:nF { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               {
-                \@@_dict_gnew:n { backend_Page\l_@@_tmpa_tl/Resources/Properties }
+                \__pdfgdict_new:n { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               }
-            \@@_dict_handler_put:nxx
+            \__pdfgdict_handler_gput:nxx
               { backend_Page\l_@@_tmpa_tl/Resources/Properties }
               { l3pdf\int_use:N\g_@@_backend_resourceid_int }
               { \@@_backend_object_last: }
-            %\@@_dict_show:n { backend_Page\l_@@_tmpa_tl/Resources/Properties }
+            %\pdfgdict_show:n { backend_Page\l_@@_tmpa_tl/Resources/Properties }
           }
       }
   \cs_set_protected:Npn \@@_backend_bmc:n #1
@@ -1422,9 +1259,9 @@
   \cs_new:Npn \@@_backend_PageResources_gpush_aux:n #1 %#1 ExtGState etc
     {
       \prop_if_empty:cF
-        { \@@_dict_gname:n {Page/Resources/#1} }
+        { \__pdfgdict_name:n {Page/Resources/#1} }
         {
-          \@@_dict_objref_item:nn { #1 }{Page/Resources/#1}
+          \__pdfgdict_objref_item:nn { #1 }{Page/Resources/#1}
         }
     }
 
@@ -1433,13 +1270,13 @@
        \exp_args:NNx \tex_global:D \tex_pdfpageresources:D
          {
            \prop_if_exist:cT
-             { \@@_dict_gname:n  { backend_Page#1/Resources/Properties } }
+             { \__pdfgdict_name:n  { backend_Page#1/Resources/Properties } }
              {
                /Properties~
                  <<
                    \prop_map_function:cN
-                     { \@@_dict_gname:n  { backend_Page#1/Resources/Properties } }
-                     \@@_dict_item:ne
+                     { \__pdfgdict_name:n  { backend_Page#1/Resources/Properties } }
+                     \__pdfgdict_item:ne
                  >>
              }
            %% add ExtGState etc
@@ -1449,6 +1286,7 @@
          }
     }
   }
+%</pdfmode>
 %    \end{macrocode}
 % \end{macro}
 %





More information about the latex3-commits mailing list.