[latex3-commits] [git/LaTeX3-latex3-pdfresources] renamedict77: split user command in local/global, is cleaner (a1c9eb9)

Ulrike Fischer fischer at troubleshooting-tex.de
Mon Apr 20 00:30:51 CEST 2020


Repository : https://github.com/latex3/pdfresources
On branch  : renamedict77
Link       : https://github.com/latex3/pdfresources/commit/a1c9eb90a775fa070504815a9c3426fb1c88eaeb

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

commit a1c9eb90a775fa070504815a9c3426fb1c88eaeb
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Mon Apr 20 00:30:51 2020 +0200

    split user command in local/global, is cleaner


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

a1c9eb90a775fa070504815a9c3426fb1c88eaeb
 hgeneric-experimental.def                  | 154 +++++++++++++--------------
 newpackages/new-transparent.sty            |   6 +-
 pdfresources.dtx                           | 164 ++++++++++++++++++++++-------
 testfiles-dvips/annot.pvt                  |   6 +-
 testfiles-dvips/catalogAF.pvt              |  10 +-
 testfiles-dvips/ismap.pvt                  |   6 +-
 testfiles-dvips/linkhook.pvt               |   6 +-
 testfiles-dvips/pagelabels.pvt             |   6 +-
 testfiles-dvips/pdffilelink.pvt            |   6 +-
 testfiles-noxetex/extgstate-patches.pvt    |   2 +-
 testfiles-noxetex/metadata.pvt             |   2 +-
 testfiles-noxetex/test-new-transparent.pvt |   2 +-
 testfiles/catalog-remove.lvt               |  22 ++--
 testfiles/catalogAF.pvt                    |   4 +-
 testfiles/infodict.pvt                     |   4 +-
 testfiles/mixpageattr.pvt                  |   4 +-
 testfiles/ocproperties.pvt                 |   6 +-
 testfiles/pageattr.pvt                     |  14 +--
 testfiles/pagesattr.pvt                    |   8 +-
 testfiles/thispageattr.pvt                 |   4 +-
 testfiles/xform.pvt                        |   2 +-
 21 files changed, 261 insertions(+), 177 deletions(-)

diff --git a/hgeneric-experimental.def b/hgeneric-experimental.def
index e278030..d633a6a 100644
--- a/hgeneric-experimental.def
+++ b/hgeneric-experimental.def
@@ -349,7 +349,7 @@
 % we simply hard code this for now until hyperref.sty itself can be adapted ...
 \cs_new_protected:Npn\__hyp_PageLabels_gpush:
   {
-    \pdfdict_put:nnx {Catalog} {PageLabels}{<</Nums[\HyPL at Labels]>>}
+    \pdfdict_gput:nnx {Catalog} {PageLabels}{<</Nums[\HyPL at Labels]>>}
   }
 
 
@@ -519,8 +519,8 @@
               /View  <</ViewState/OFF>>~
              >>
           }
-       \pdfdict_put:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l__hyp_ocg_view_dict_obj} }
-       \pdfdict_put:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l__hyp_ocg_print_dict_obj} }
+       \pdfdict_gput:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l__hyp_ocg_view_dict_obj} }
+       \pdfdict_gput:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l__hyp_ocg_print_dict_obj} }
        \pdf_object_write:nx { l__hyp_ocg_config_dict_obj }
          {
            /OFF[\pdf_object_ref:n { l__hyp_ocg_print_dict_obj }]
@@ -542,7 +542,7 @@
              >>
               ]
          }
-       \pdfdict_put:nnx { Catalog / OCProperties }{ D }{ \pdf_object_ref:n { l__hyp_ocg_config_dict_obj} }
+       \pdfdict_gput:nnx { Catalog / OCProperties }{ D }{ \pdf_object_ref:n { l__hyp_ocg_config_dict_obj} }
     }
     \Hy at AtBeginDocument
       {
@@ -829,24 +829,24 @@
        \__hyp_pstringdef:No \l__hyp_tmpa_tl {#1}%
         \tl_if_empty:NTF \l__hyp_tmpa_tl
           {
-             \pdfdict_remove:nn {Catalog} { URI }
+             \pdfdict_gremove:nn {Catalog} { URI }
           }
           {
-             \pdfdict_put:nnx {Catalog} { URI }{ <</Base ( \l__hyp_tmpa_tl )>> }
+             \pdfdict_gput:nnx {Catalog} { URI }{ <</Base ( \l__hyp_tmpa_tl )>> }
           }
      }
    ,pdfcenterwindow    .choice:
    ,pdfcenterwindow / false .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences }{ CenterWindow }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences }{ CenterWindow }
      }
    ,pdfcenterwindow / true .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences } { CenterWindow }{ true }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences } { CenterWindow }{ true }
      }
    ,pdfcenterwindow /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences }{ CenterWindow }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences }{ CenterWindow }
      }
    ,pdfcenterwindow / unknown .code:n =
      {
@@ -858,15 +858,15 @@
    ,pdfdirection    .choice:
    ,pdfdirection / L2R .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences } { Direction }{ /L2R }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences } { Direction }{ /L2R }
      }
    ,pdfdirection / R2L .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences } { Direction }{ /R2L }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences } { Direction }{ /R2L }
      }
    ,pdfdirection /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { Direction }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { Direction }
      }
    ,pdfdirection / unknown .code:n =
      {
@@ -878,11 +878,11 @@
    ,pdfdisplaydoctitle    .choice:
    ,pdfdisplaydoctitle / false .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { DisplayDocTitle }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { DisplayDocTitle }
      }
    ,pdfdisplaydoctitle / true .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences } { DisplayDocTitle } { true }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences } { DisplayDocTitle } { true }
      }
    ,pdfdisplaydoctitle    .default:n = true
    ,pdfduplex    .choices:nn =
@@ -890,7 +890,7 @@
      {
        \pdf_version_compare:NnTF > {1.6}
          {
-           \pdfdict_put:nnn {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnn {Catalog / ViewerPreferences }
              { PrintDuplex } { /#1 }
          }
          {
@@ -903,7 +903,7 @@
      }%
    ,pdfduplex /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { PrintDuplex }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { PrintDuplex }
      }
    ,pdfduplex / unknown .code:n =
      {
@@ -915,15 +915,15 @@
    ,pdffitwindow    .choice:
    ,pdffitwindow / false .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences }  { FitWindow }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences }  { FitWindow }
      }
    ,pdffitwindow / true .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences } { FitWindow } { true }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences } { FitWindow } { true }
      }
    ,pdffitwindow /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { FitWindow }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { FitWindow }
      }
    ,pdffitwindow    .default:n = true
    ,pdffitwindow / unknown .code:n =
@@ -936,25 +936,25 @@
           {
             \tl_if_empty:nTF { #1 }
               {
-                \pdfdict_remove:nn {Catalog} { Lang }
+                \pdfdict_gremove:nn {Catalog} { Lang }
               }
               {
-                \pdfdict_put:nnx {Catalog} { Lang } { (#1) }
+                \pdfdict_gput:nnx {Catalog} { Lang } { (#1) }
               }
           }
    ,pdfmenubar    .choice:
    ,pdfmenubar / true .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { HideMenubar }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { HideMenubar }
      }
    ,pdfmenubar / false .code:n =
      {
-       \pdfdict_put:nn {Catalog / ViewerPreferences }
+       \pdfdict_gput:nn {Catalog / ViewerPreferences }
           { HideMenubar } { true }
      }
    ,pdfmenubar /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { HideMenubar }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { HideMenubar }
      }
    ,pdfmenubar    .default:n = true
    ,pdfmenubar / unknown .code:n =
@@ -966,7 +966,7 @@
    ,pdfnonfullscreenpagemode   .choices:nn =
      { UseNone, UseOutlines, UseThumbs, FullScreen, UseOC } %pdf 1.5
      {
-       \pdfdict_put:nnx {Catalog / ViewerPreferences }
+       \pdfdict_gput:nnx {Catalog / ViewerPreferences }
          { NonFullScreenPageMode} {/#1}
      }
    ,pdfnonfullscreenpagemode / UseAttachments .code:n =
@@ -976,13 +976,13 @@
            %message
          }
          {
-           \pdfdict_put:nnx {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnx {Catalog / ViewerPreferences }
              {NonFullScreenPageMode}{/UseAttachments}
          }
      }
    ,pdfnonfullscreenpagemode /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { NonFullScreenPageMode }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { NonFullScreenPageMode }
      }
    ,pdfnonfullscreenpagemode / unknown .code:n =
      {
@@ -997,10 +997,10 @@
          {
            \tl_empty:nTF
              {
-               \pdfdict_remove:nn {Catalog / ViewerPreferences } { NumCopies }
+               \pdfdict_gremove:nn {Catalog / ViewerPreferences } { NumCopies }
              }
              {
-               \pdfdict_put:nnx {Catalog / ViewerPreferences }
+               \pdfdict_gput:nnx {Catalog / ViewerPreferences }
                  {NumCopies}{#1}
              }
          }
@@ -1014,9 +1014,9 @@
      }
    ,pdfpagelayout .choices:nn =
      { SinglePage, OneColumn, TwoColumnLeft, TwoColumnRight, TwoPageLeft, TwoPageRight}
-     { \pdfdict_put:nnx {Catalog} { PageLayout }{ /#1 } }
+     { \pdfdict_gput:nnx {Catalog} { PageLayout }{ /#1 } }
    ,pdfpagelayout / .code:n =
-     { \pdfdict_remove:nn {Catalog} { PageLayout } }
+     { \pdfdict_gremove:nn {Catalog} { PageLayout } }
    ,pdfpagelayout / unknown .code:n =
      {
        \msg_warning:nnxxx { hyp } { unknown-choice }
@@ -1026,12 +1026,12 @@
      }
    ,pdfpagemode   .choices:nn =
      { UseNone, UseOutlines, UseThumbs, FullScreen, UseOC } %pdf 1.5
-     { \pdfdict_put:nnx {Catalog} { PageMode }{ /#1 } }
+     { \pdfdict_gput:nnx {Catalog} { PageMode }{ /#1 } }
    ,pdfpagemode / UseAttachments .code:n =
      {
        \pdf_version_compare:NnTF > {1.5}
          {
-           \pdfdict_put:nnx {Catalog} { PageMode }{ /UseAttachments }
+           \pdfdict_gput:nnx {Catalog} { PageMode }{ /UseAttachments }
          }
          {
            \msg_warning:nnxx
@@ -1053,10 +1053,10 @@
      {
        \tl_if_empty:nTF %or blank?
          {
-           \pdfdict_remove:nn {Pages} { CropBox }
+           \pdfdict_gremove:nn {Pages} { CropBox }
          }
          {
-           \pdfdict_put:nnx {Pages} { CropBox } { [#1] }
+           \pdfdict_gput:nnx {Pages} { CropBox } { [#1] }
          }
      }
    ,pdfpicktraybypdfsize    .choice:
@@ -1064,7 +1064,7 @@
      {
        \pdf_version_compare:NnTF > {1.6}
          {
-           \pdfdict_put:nnn {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnn {Catalog / ViewerPreferences }
              { PickTrayByPDFSize } { true }
          }
          {
@@ -1079,7 +1079,7 @@
      {
        \pdf_version_compare:NnTF > {1.6}
          {
-           \pdfdict_put:nnn {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnn {Catalog / ViewerPreferences }
              { PickTrayByPDFSize } { false }
          }
          {
@@ -1092,7 +1092,7 @@
      }
    ,pdfpicktraybypdfsize /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { PickTrayByPDFSize }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { PickTrayByPDFSize }
      }
    ,pdfpicktraybypdfsize / unknown .code:n =
      {
@@ -1105,7 +1105,7 @@
      {
        \pdf_version_compare:NnTF < {2.0}
          {
-           \pdfdict_put:nnx {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnx {Catalog / ViewerPreferences }
              { PrintArea } { /#1 }
          }
          {
@@ -1117,7 +1117,7 @@
          }
      }%
    ,pdfprintarea /  .code:n =
-     { \pdfdict_remove:nn {Catalog / ViewerPreferences } { PrintArea } }
+     { \pdfdict_gremove:nn {Catalog / ViewerPreferences } { PrintArea } }
    ,pdfprintarea / unknown .code:n =
      {
        \msg_warning:nnxxx { hyp } { unknown-choice }
@@ -1130,7 +1130,7 @@
      {
        \pdf_version_compare:NnTF < {2.0}
          {
-           \pdfdict_put:nnx {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnx {Catalog / ViewerPreferences }
              { PrintClip } { /#1 }
          }
          {
@@ -1143,7 +1143,7 @@
      }%
    ,pdfprintclip /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { PrintClip }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { PrintClip }
      }
    ,pdfprintclip / unknown .code:n =
      {
@@ -1158,11 +1158,11 @@
          {
            \tl_if_empty:nTF { #1}
              {
-               \pdfdict_remove:nn {Catalog / ViewerPreferences }
+               \pdfdict_gremove:nn {Catalog / ViewerPreferences }
                  { PrintPageRange }
              }
              {
-              \pdfdict_put:nnx {Catalog / ViewerPreferences }
+              \pdfdict_gput:nnx {Catalog / ViewerPreferences }
                  {PrintPageRange}{[#1]}
              }
          }
@@ -1179,7 +1179,7 @@
      {
        \pdf_version_compare:NnTF > {1.5}
          {
-           \pdfdict_put:nnx {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnx {Catalog / ViewerPreferences }
              { PrintScaling } { /#1 }
          }
          {
@@ -1192,7 +1192,7 @@
      }%
    ,pdfprintscaling /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } {PrintScaling }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } {PrintScaling }
      }
    ,pdfprintscaling / unknown .code:n =
      {
@@ -1208,10 +1208,10 @@
        \bool_if:nTF
          { \tl_if_empty_p:N \g__hyp_pdfstartpage_tl || \tl_if_empty_p:N \g__hyp_pdfstartview_tl }
          {
-           \pdfdict_remove:nn {Catalog} { OpenAction }
+           \pdfdict_gremove:nn {Catalog} { OpenAction }
          }
          {
-           \pdfdict_put:nnx {Catalog} { OpenAction }
+           \pdfdict_gput:nnx {Catalog} { OpenAction }
              {
                [\pdf_pageobject_ref:n {\g__hyp_pdfstartpage_tl}~/\g__hyp_pdfstartview_tl]
              }
@@ -1224,10 +1224,10 @@
        \bool_if:nTF
          { \tl_if_empty_p:N \g__hyp_pdfstartpage_tl || \tl_if_empty_p:N \g__hyp_pdfstartview_tl }
          {
-           \pdfdict_remove:nn {Catalog} { OpenAction }
+           \pdfdict_gremove:nn {Catalog} { OpenAction }
          }
          {
-           \pdfdict_put:nnx {Catalog} { OpenAction }
+           \pdfdict_gput:nnx {Catalog} { OpenAction }
              {
                [\pdf_pageobject_ref:n {\g__hyp_pdfstartpage_tl}~/\g__hyp_pdfstartview_tl]
              }
@@ -1237,16 +1237,16 @@
    ,pdftoolbar    .choice:
    ,pdftoolbar / true .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { HideToolbar }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { HideToolbar }
      }
    ,pdftoolbar / false .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences }
          { HideToolbar } { true }
      }
    ,pdftoolbar / true .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { HideToolbar }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { HideToolbar }
      }
    ,pdftoolbar    .default:n = true
    ,pdftoolbar / unknown .code:n =
@@ -1260,7 +1260,7 @@
      {
        \pdf_version_compare:NnTF < {2.0}
          {
-           \pdfdict_put:nnn {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnn {Catalog / ViewerPreferences }
              { ViewArea } { /#1 }
          }
          {
@@ -1273,7 +1273,7 @@
      }%
    ,pdfviewarea /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { ViewArea }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { ViewArea }
      }
    ,pdfviewarea / unknown .code:n =
      {
@@ -1287,7 +1287,7 @@
      {
        \pdf_version_compare:NnTF < {2.0}
          {
-           \pdfdict_put:nnn {Catalog / ViewerPreferences }
+           \pdfdict_gput:nnn {Catalog / ViewerPreferences }
              { ViewClip } { /#1 }
          }
          {
@@ -1300,7 +1300,7 @@
      }%
    ,pdfviewclip /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { ViewClip }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { ViewClip }
      }
    ,pdfviewclip / unknown .code:n =
      {
@@ -1312,16 +1312,16 @@
    ,pdfwindowui    .choice:
    ,pdfwindowui / true .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } { HideWindowUI }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } { HideWindowUI }
      }
    ,pdfwindowui / false .code:n =
      {
-       \pdfdict_put:nnn {Catalog / ViewerPreferences }
+       \pdfdict_gput:nnn {Catalog / ViewerPreferences }
           { HideWindowUI } { true }
      }
    ,pdfwindowui /  .code:n =
      {
-       \pdfdict_remove:nn {Catalog / ViewerPreferences } {HideWindowUI }
+       \pdfdict_gremove:nn {Catalog / ViewerPreferences } {HideWindowUI }
      }
    ,pdfwindowui / unknown .code:n =
      {
@@ -1383,29 +1383,29 @@
   \pdf at ifdraftmode{}{
     \Hy at UseMaketitleInfos %get Title/Author from \title if pdfusetitle is true
     \__hyp_info_generate_addons:
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {Author} {(\@pdfauthor)}
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {Title}  {(\@pdftitle)}
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {Subject}{(\@pdfsubject)}
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {Creator}{(\@pdfcreator)}
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {CreationDate}{(\@pdfcreationdate)}
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {ModDate}{(\@pdfmoddate)}
     \tl_if_exist:NT \@pdfproducer %special, as \relax is default
       {
-       \pdfdict_put:nnx {Info}
+       \pdfdict_gput:nnx {Info}
         {Producer}{(\@pdfproducer)}
       }
-    \pdfdict_put:nnx {Info}
+    \pdfdict_gput:nnx {Info}
       {Keywords}{(\@pdfkeywords)}
     \tl_if_empty:NF
        \@pdftrapped
        {
-        \pdfdict_put:nnx {Info}
+        \pdfdict_gput:nnx {Info}
         {Trapped}{/\@pdftrapped}
        }
     }
@@ -1427,7 +1427,7 @@
    \pdf_pageattr_gremove:n {Trans}
    \tl_if_empty:NF \@pdfpagetransition
     {
-     \pdfdict_put:nnx {Page} {Trans}{<< /S /\@pdfpagetransition\space >>}
+     \pdfdict_gput:nnx {Page} {Trans}{<< /S /\@pdfpagetransition\space >>}
     }
   \fi
 }
@@ -1438,7 +1438,7 @@
    \pdf_pageattr_gremove:n {Dur}
    \tl_if_empty:NF \@pdfpageduration
     {
-     \pdfdict_put:nnx {Page} {Dur}{\@pdfpageduration\space}
+     \pdfdict_gput:nnx {Page} {Dur}{\@pdfpageduration\space}
     }
   \fi
 }
@@ -1578,7 +1578,7 @@
         \Hy at FormObjects
         \prop_map_inline:Nn \g__hyp_AcroForm_Fields_prop
           {
-            \pdfdict_put:nnx { Catalog / AcroForm } { Fields }{##1}
+            \pdfdict_gput:nnx { Catalog / AcroForm } { Fields }{##1}
             %\pdfdict_show:n { Catalog / AcroForm }
             %\seq_show:c { g__pdf_/Catalog/AcroForm/Fields_seq} %!!!!!
           }
@@ -1597,24 +1597,24 @@
               }
             \seq_map_inline:Nn \l__hyp_tmpa_seq
              {
-                \pdfdict_put:nnx { Catalog / AcroForm }
+                \pdfdict_gput:nnx { Catalog / AcroForm }
                   { CO }
                   {
                     \prop_item:Nn \g__hyp_AcroForm_CoFields_prop {##1}
                   }
              }
           }
-       \pdfdict_put:nnx {Catalog / AcroForm/DR/Font }
+       \pdfdict_gput:nnx {Catalog / AcroForm/DR/Font }
          {ZaDb} {\pdf_object_ref:n {l__hyp_font_zapfdingbats_obj} }
-       \pdfdict_put:nnx {Catalog / AcroForm/DR/Font }
+       \pdfdict_gput:nnx {Catalog / AcroForm/DR/Font }
          {Helv} {\pdf_object_ref:n {l__hyp_font_helvetica_obj} }
-       \pdfdict_put:nnx {Catalog /AcroForm}
+       \pdfdict_gput:nnx {Catalog /AcroForm}
          {DA}{(/Helv~10~Tf~0~g)}
        \legacy_if:nF { Hy at pdfa } %?????? Standards?
          {
            \legacy_if:nT { HyField at NeedAppearances }
              {
-               \pdfdict_put:nnx {Catalog / AcroForm }{NeedAppearances}{true}
+               \pdfdict_gput:nnx {Catalog / AcroForm }{NeedAppearances}{true}
              }
          }
        }
diff --git a/newpackages/new-transparent.sty b/newpackages/new-transparent.sty
index 31f9efa..0928efd 100644
--- a/newpackages/new-transparent.sty
+++ b/newpackages/new-transparent.sty
@@ -53,7 +53,7 @@
   \protected\edef\TRP at pdfpageresources {\pdfvariable pageresources}
   \protected\def\TRP at pdfcolorstack     {\pdfextension colorstack}
 \fi
-\ifcsname pdfdict_put:nnn\endcsname
+\ifcsname pdfdict_gput:nnn\endcsname
 \else
 \PackageWarningNoLine{new-transparent}{%
     Loading aborted, because pdf resource management code not found%
@@ -62,12 +62,12 @@
 \fi
 
 \ExplSyntaxOn
-\pdfdict_put:nnn{Page/Resources/ExtGState}{TRP1}{<</ca~1/CA~1>>}
+\pdfdict_gput:nnn{Page/Resources/ExtGState}{TRP1}{<</ca~1/CA~1>>}
 \cs_new_protected:Npn \__transparent_use:n #1
  {
    \tl_if_exist:cF { c__transparent_TRP#1_tl }
      {
-       \pdfdict_put:nnn{Page/Resources/ExtGState}{TRP#1}{<</ca~#1/CA~#1>>}
+       \pdfdict_gput:nnn{Page/Resources/ExtGState}{TRP#1}{<</ca~#1/CA~#1>>}
        \tl_const:cn { c__transparent_TRP#1_tl }{ /TRP#1~gs }
      }
  }
diff --git a/pdfresources.dtx b/pdfresources.dtx
index 83f0f9f..62b92c0 100644
--- a/pdfresources.dtx
+++ b/pdfresources.dtx
@@ -128,7 +128,7 @@
 \msg_new:nnn  { pdf } { catalog-special }
               {
                 values~to~the~catalog~entry~#1~should~be~added~with~
-                \token_to_str:N\pdfdict_put:nnn
+                \token_to_str:N\pdfdict_gput:nnn
               }
 \msg_new:nnn  { pdf } { catalog-unknown }
               {
@@ -146,6 +146,11 @@
   {
     The~dictionary~'#1'~is~not~declared.
   }
+\msg_new:nnn  { pdfdict } { wrong-or-unknown-dict }
+  {
+    The~dictionary~'#1'~is~either~not~a~#2~dictionary\\
+    or~is~not~declared.
+  }
 \msg_new:nnn  { pdfdict } { dict-already-defined  }
   {
     The~dictionary~'#1'~is~already~defined.
@@ -413,19 +418,40 @@
 % registers \cs{pdfcatalog}, \cs{pdfpagesattr}, \cs{pdfinfo} and similar commands
 % of the other backends  in a backend independant way.
 %
+% There are two distinct types of dictionaries
+% \begin{description}
+%    \item[Global dictionaries] These are dictionaries which are inserted only
+%    once in a PDF or only once per page. Examples are the Catalog dictionary,
+%    the Info dictionary, the page resources. For these dictionaries it is necessary
+%    that all package which want to write to them uses the interface provided
+%    by this module to avoid clashes and incompabilities. Values to these
+%    dictionaries are always added globally and written by the code
+%    at a suitable time to the PDF.
+%    Global dictionaries are set and manipulated with the global commands, e.g.
+%    \cs{pdf_dict_gput:nnn}.
+%
+%    \item[Local dictionaries ] These are dictionaries which are used in varying number
+%    with varying content. Examples are attributes of links, filespec dictionaries,
+%    xform dictionaries. The main purpose of the code here is to give packages and users
+%    a better interface to add or change values of such objects.
+%
+%    Local dictionaries are set and manipulated with the local commands, e.g.
+%    \cs{pdf_dict_put:nnn}
+%  \end{description}
+%
 % The following tabular summarize the dictionaries and which pdftex primitive they
 % replace:
 % \begin{tabular}{lll}
-%  Info                                  & \cs{pdfinfo} \\
-%  Catalog \&  various subdictionaries   & \cs{pdfcatalog}\\
-%  Pages                                 & \cs{pdfpagesattr}\\
-%  Page, ThisPage                        & \cs{pdfpageattr}\\
-%  Page/Resources/ExtGState              & \cs{pdfpageresources}\\
-%  Page/Resources/Shading                & \cs{pdfpageresources}\\
-%  Page/Resources/Pattern                & \cs{pdfpageresources}\\
-%  Page/Resources/ColorSpace             & \cs{pdfpageresources}\\%
-%  xform\ldots                           & argument of \cs{pdfxform} \\
-%  annot\ldots                           & argument of \cs{pdfannot}, \cs{pdfstartlink}\\
+%  Info                                  & \cs{pdfinfo}    &global\\
+%  Catalog \&  various subdictionaries   & \cs{pdfcatalog} &global\\
+%  Pages                                 & \cs{pdfpagesattr}&global\\
+%  Page, ThisPage                        & \cs{pdfpageattr}&global\\
+%  Page/Resources/ExtGState              & \cs{pdfpageresources}&global\\
+%  Page/Resources/Shading                & \cs{pdfpageresources}&global\\
+%  Page/Resources/Pattern                & \cs{pdfpageresources}&global\\
+%  Page/Resources/ColorSpace             & \cs{pdfpageresources}&global\\%
+%  xform\ldots                           & argument of \cs{pdfxform} &local\\
+%  annot\ldots                           & argument of \cs{pdfannot}, \cs{pdfstartlink} &local\\
 %  \end{tabular}
 %
 %  The /Properties dictionary of the page resources is not handled by this module. It is
@@ -490,6 +516,9 @@
 \seq_new:N \g_@@_dict_gnames_seq
 \seq_new:N \g_@@_dict_names_seq
 
+\tl_const:Nn \c_@@_dict_globalprefix_tl {g}
+\tl_const:Nn \c_@@_dict_localprefix_tl  {}
+
 % to retried global status from pathes
 \cs_new:Npn \@@_dict_get_g:n #1 % path name without the leading /
   {
@@ -563,6 +592,24 @@
       { \prg_return_true: }
       { \prg_return_false: }
   }
+% test if global, non existing dicts return false
+\prg_new_conditional:Npnn \@@_dict_if_global:n #1 { p , T , F , TF }
+   {
+     \tl_if_eq:NcTF
+        \c_@@_dict_globalprefix_tl
+        { c_@@_dict_/#1_g_tl }
+        { \prg_return_true: }
+        { \prg_return_false: }
+   }
+% test if local, non existing dicts return false
+\prg_new_conditional:Npnn \@@_dict_if_local:n #1 { p , T , F , TF }
+   {
+     \tl_if_eq:NcTF
+        \c_@@_dict_localprefix_tl
+        { c_@@_dict_/#1_g_tl }
+        { \prg_return_true: }
+        { \prg_return_false: }
+   }
 
 %    \end{macrocode}
 %  \end{macro}
@@ -581,14 +628,15 @@
 %
 %    \begin{macrocode}
 
-%local + global
+%we allow only for local dictionaries a clear command
 \cs_new_protected:Npn \@@_dict_clear:n #1
   {
-    \use:c { prop_\@@_dict_get_g:n{#1}clear:c }
-           { \@@_dict_Xname:n { #1 } }
+    \@@_dict_if_local:nT { #1 }
+      {
+        \prop_clear:c  { \@@_dict_name:n { #1 } }
+      }
   }
 
-
 %local + global
 \cs_new_protected:Npn \@@_dict_handler_put:nnn #1 #2 #3  %#1 path, #2 name, #3 value
   {
@@ -749,9 +797,10 @@
 % local:  lower case: annot/link/URI.
 % \end{NOTE}
 % \begin{function}[added = 2020-04-06]
-%   {\pdfdict_put:nnn}
+%   {\pdfdict_put:nnn, \pdfdict_gput:nnn}
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \Arg{dictionary} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \Arg{global dictionary} \Arg{name} \Arg{value}\\
+%     \cs{pdfdict_put:nnn} \Arg{local dictionary} \Arg{name} \Arg{value}
 %   \end{syntax}
 % This function puts \Arg{name} \Arg{value} either globally or locally in internal
 % property lists.
@@ -789,10 +838,28 @@
 
 \cs_new_protected:Npn \pdfdict_put:nnn #1 #2 #3
   {
-     \@@_dict_handler_put:nnn { #1 }{ #2 }{ #3 }
+    \@@_dict_if_local:nTF { #1 }
+      {
+        \@@_dict_handler_put:nnn { #1 }{ #2 }{ #3 }
+      }
+      {
+        \msg_error:nnnn{pdfdict}{wrong-or-unknown-dict}{#1}{local}
+      }
+  }
+
+\cs_new_protected:Npn \pdfdict_gput:nnn #1 #2 #3
+  {
+    \@@_dict_if_global:nTF { #1 }
+      {
+        \@@_dict_handler_put:nnn { #1 }{ #2 }{ #3 }
+      }
+      {
+        \msg_error:nnnn{pdfdict}{wrong-or-unknown-dict}{#1}{global}
+      }
   }
 
 \cs_generate_variant:Nn \pdfdict_put:nnn {nnx}
+\cs_generate_variant:Nn \pdfdict_gput:nnn {nnx}
 %    \end{macrocode}
 % \begin{function}[added = 2020-04-08]
 %   {\pdfdict_show:n }
@@ -828,8 +895,8 @@
 %   \begin{syntax}
 %     \cs{pdfdict_get:nnN}  \Arg{dictionary} \Arg{name} \meta{tl var}
 %   \end{syntax}
-%   Recovers the \meta{value} stored by \cs{pdfdict_put:nnn} for
-%   \meta{name} and places this in the \meta{token list
+%   Recovers the \meta{value} stored by \cs{pdfdict_put:nnn} or \cs{pdfdict_gput:nnn}
+%   for \meta{name} and places this in the \meta{token list
 %   variable}. If \meta{name} is not found
 %   then the \meta{token list variable} is set
 %   to the special marker \cs{q_no_value}. The \meta{token list
@@ -848,11 +915,11 @@
 %     \pdfdict_remove:nn,
 %   }
 %   \begin{syntax}
-%     \cs{pdfdict_remove:nn} \Arg{dictionary} \Arg{name}
+%     \cs{pdfdict_remove:nn} \Arg{local dictionary} \Arg{name}\\
+%     \cs{pdfdict_gremove:nn} \Arg{global dictionary} \Arg{name}
 %   \end{syntax}
 %   Removes  |/|\meta{name} and its associated \meta{value} from the \Arg{dictionary}
-%   or \Arg{local dict} (if the name-value pair has been added by
-%   \cs{pdfdict_put:nnn}). The removal is local for local dictionaries, and global
+%   The removal is local for local dictionaries, and global
 %   for global dictionaries.
 %   If \meta{name} is not found no change occurs,
 %   \emph{i.e}~there is no need to test for the existence of a name before
@@ -863,7 +930,24 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \pdfdict_remove:nn #1 #2
   {
-    \@@_dict_handler_remove:nn { #1 }{ #2 }
+    \@@_dict_if_local:nTF { #1 }
+      {
+        \@@_dict_handler_remove:nn { #1 }{ #2 }
+      }
+      {
+        \msg_error:nnnn{pdfdict}{wrong-or-unknown-dict}{#1}{local}
+      }
+  }
+
+\cs_new_protected:Npn \pdfdict_gremove:nn #1 #2
+  {
+    \@@_dict_if_global:nTF { #1 }
+      {
+        \@@_dict_handler_remove:nn { #1 }{ #2 }
+      }
+      {
+        \msg_error:nnnn{pdfdict}{wrong-or-unknown-dict}{#1}{global}
+      }
   }
 %    \end{macrocode}
 %
@@ -899,7 +983,7 @@
 %     pdfdict: Info (global)
 %   }
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \{Info\} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \{Info\} \Arg{name} \Arg{value}
 %   \end{syntax}
 %   Adds |/|\meta{name} and the \meta{value} to the Info dictionary.
 %   \meta{name} should be a valid pdf name without the leading slash,
@@ -912,7 +996,7 @@
 %   normally sensible:
 %   \begin{verbatim}
 %   \str_set_convert:Nnnn \l_tmpa_str { Grüße }{ utf8 } {utf8/string}
-%   \pdfdict_put:nx {Title}{(\l_tmpa_str)}
+%   \pdfdict_gput:nnx {Info} {Title}{(\l_tmpa_str)}
 %   \end{verbatim}
 % \end{function}
 %    \begin{macrocode}
@@ -997,7 +1081,7 @@
 % \end{NOTE}
 % \begin{function}{pdfdict: Pages (global)}
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \{Pages\} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \{Pages\} \Arg{name} \Arg{value}
 %   \end{syntax}
 %
 %   Adds |/|\meta{name} \meta{value} to the |/Pages| dictionary.
@@ -1296,7 +1380,7 @@
 % \begin{function}[added = 2020-04-12]
 %   {pdfdict: Page}
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \{Page\} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \{Page\} \Arg{name} \Arg{value}
 %   \end{syntax}
 %   Values added to the dictionary \texttt{Page} are added to the page dictionary
 %   of the current page and the following pages. The current page means the page
@@ -1318,7 +1402,7 @@
 % \begin{function}[added = 2020-04-12]
 %   { pdfdict: ThisPage}
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \{ThisPage\} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \{ThisPage\} \Arg{name} \Arg{value}
 %   \end{syntax}
 %   Adds |/|\meta{name} \meta{value} at shipout to the page dictionary of the
 %   current page. Current page means here the shipout page.
@@ -1529,7 +1613,7 @@
 %    pdfdict: Page/Resources/Pattern,
 %   }
 %   \begin{syntax}
-%     \cs{pdfdict_put:nnn} \{Page/Resources/\meta{resource}\} \Arg{name} \Arg{value}
+%     \cs{pdfdict_gput:nnn} \{Page/Resources/\meta{resource}\} \Arg{name} \Arg{value}
 %   \end{syntax}
 %   Adds |/|\meta{name} \meta{value} to the page resource \meta{resource}.
 %   \meta{resource} can be |ExtGState|, |ColorSpace|, |Pattern| oder |Shading|.
@@ -1627,7 +1711,7 @@
 %
 %   The required PDF version is only mentioned if it is larger than 1.5.
 %
-%   Example: |\pdfdict_put:nnn {Catalog}{PageMode}{/UseNone}|
+%   Example: |\pdfdict_gput:nnn {Catalog}{PageMode}{/UseNone}|
 %
 %% !!!!!!!! Warning for unknown names is currently not working!
 %   \medskip
@@ -1667,7 +1751,7 @@
 %   in the PDF reference.
 %   If \meta{Name} gets assigned two values the last one wins.
 %
-%   Example: |\pdfdict_put:nnn {Catalog/MarkInfo}{Marked}{true}|
+%   Example: |\pdfdict_gput:nnn {Catalog/MarkInfo}{Marked}{true}|
 %
 %   \medskip
 %   \noindent
@@ -1705,13 +1789,13 @@
 %  \begin{verbatim}
 %  \pdf_object_new:nn   {pkg at intent}{dict}
 %  \pdf_object_write:nn {pkg at intent}{...}
-%  \pdfdict_put:nnx  {Catalog} {OutputIntents}{\pdf_object_ref:n {pkg at intent}}
+%  \pdfdict_gput:nnx  {Catalog} {OutputIntents}{\pdf_object_ref:n {pkg at intent}}
 %  \end{verbatim}
 %
 %  or
 %  \begin{verbatim}
 %  \pdf_object_now:nn   {dict} { ... }
-%  \pdfdict_put:nnx  {Catalog} {OutputIntents}{\pdf_object_last:}
+%  \pdfdict_gput:nnx  {Catalog} {OutputIntents}{\pdf_object_last:}
 %  \end{verbatim}
 %
 %
@@ -3295,13 +3379,13 @@
 % is an absolute page number. \Arg{view} a string for the destination
 % without the leading slash. Examples are e.g. |XYZ left top zoom| or |Fit|.
 % The OpenAction uses (and could also be set directly with)
-% \cs{pdfdict_put:nnn}|{Catalog}|.
+% \cs{pdfdict_gput:nnn}|{Catalog}|.
 % \end{function}
 %
 %    \begin{macrocode}
 \cs_new_protected:Npn \pdf_docview:nn #1 #2
   {
-    \pdfdict_put:nnx {Catalog }{ OpenAction }{[\pdf_pageobject_ref:n {#1}~/#2]}
+    \pdfdict_gput:nnx {Catalog }{ OpenAction }{[\pdf_pageobject_ref:n {#1}~/#2]}
   }
 %    \end{macrocode}
 %
@@ -3333,7 +3417,7 @@
       },
     lang .code:n =
       {
-        \pdfdict_put:nnn {Catalog} {Lang}{(#1)}
+        \pdfdict_gput:nnn {Catalog} {Lang}{(#1)}
       }
   }
 
@@ -3599,7 +3683,7 @@
         \@@_backend_object_write:nn
           {__spc_extgstate_op_false}
           {/Type /ExtGState~/op~false~/OP~false}
-        \pdfdict_put:nnn
+        \pdfdict_gput:nnn
           {Page/Resources/ExtGState}
           {SPCko}
           {\@@_backend_object_ref:n {__spc_extgstate_op_false}}
@@ -3607,7 +3691,7 @@
         \@@_backend_object_write:nn
           {__spc_extgstate_op_true0}
           {/Type /ExtGState~/op~true~/OP~true~/OPM~0}%
-        \pdfdict_put:nnn
+        \pdfdict_gput:nnn
           {Page/Resources/ExtGState}
           {SPCmz}
           {\@@_backend_object_ref:n {__spc_extgstate_op_true0}}
@@ -3615,7 +3699,7 @@
         \@@_backend_object_write:nn
           {__spc_extgstate_op_true1}
           {/Type /ExtGState~/op~true~/OP~true~/OPM~1}%
-         \pdfdict_put:nnn
+         \pdfdict_gput:nnn
           {Page/Resources/ExtGState}
           {SPCop}
           {\@@_backend_object_ref:n {__spc_extgstate_op_true1}}
diff --git a/testfiles-dvips/annot.pvt b/testfiles-dvips/annot.pvt
index e048a26..19bbcc6 100644
--- a/testfiles-dvips/annot.pvt
+++ b/testfiles-dvips/annot.pvt
@@ -3,9 +3,9 @@
 \usepackage{pdfresources}
 \ExplSyntaxOn
 %%% for reproducible tests:
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 %%%%%
 \ExplSyntaxOff
 \begin{document}
diff --git a/testfiles-dvips/catalogAF.pvt b/testfiles-dvips/catalogAF.pvt
index d735633..6de5509 100644
--- a/testfiles-dvips/catalogAF.pvt
+++ b/testfiles-dvips/catalogAF.pvt
@@ -2,9 +2,9 @@
 \RequirePackage[debug]{pdfresources}
 \ExplSyntaxOn
 %%% for reproducible tests:
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 %%%%%
 \ExplSyntaxOff
 \DeclareDocumentMetaData
@@ -21,8 +21,8 @@
 \pdf_object_new:nn   {filespec2}{dict}
 \pdf_object_write:nn {filespec2} {/Type /Filespec /UF (example2.pdf)}
 
-\pdfdict_put:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec1}}
-\pdfdict_put:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec2}}
+\pdfdict_gput:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec1}}
+\pdfdict_gput:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec2}}
 \ExplSyntaxOff
 \begin{document}
 \START
diff --git a/testfiles-dvips/ismap.pvt b/testfiles-dvips/ismap.pvt
index 82a9151..c60a680 100644
--- a/testfiles-dvips/ismap.pvt
+++ b/testfiles-dvips/ismap.pvt
@@ -5,9 +5,9 @@
 \begin{document}
 \ExplSyntaxOn
 %%% for reproducible tests:
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 %%%%%
 \ExplSyntaxOff
 \href[ismap=true]{https://www.latex-project.org#abc~xyz}{xxxxx}
diff --git a/testfiles-dvips/linkhook.pvt b/testfiles-dvips/linkhook.pvt
index 8c29f1e..3b1f0bd 100644
--- a/testfiles-dvips/linkhook.pvt
+++ b/testfiles-dvips/linkhook.pvt
@@ -8,9 +8,9 @@
  }
 \ExplSyntaxOn
 %%% for reproducible tests:
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 %%%%%
 \ExplSyntaxOff
 \input{regression-test}
diff --git a/testfiles-dvips/pagelabels.pvt b/testfiles-dvips/pagelabels.pvt
index ba4beb2..33ddba9 100644
--- a/testfiles-dvips/pagelabels.pvt
+++ b/testfiles-dvips/pagelabels.pvt
@@ -12,9 +12,9 @@
 \renewcommand\thepage{λέγ\arabic{page}}
 \begin{document}
 \ExplSyntaxOn
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 \ExplSyntaxOff
 abc \newpage abc \newpage abc  \newpage \pagenumbering{roman} abc  \newpage \pagenumbering{Roman}\setcounter{page}{5} abc
 \end{document}
diff --git a/testfiles-dvips/pdffilelink.pvt b/testfiles-dvips/pdffilelink.pvt
index 419e841..1b0457f 100644
--- a/testfiles-dvips/pdffilelink.pvt
+++ b/testfiles-dvips/pdffilelink.pvt
@@ -9,9 +9,9 @@
 
 \begin{document}
 \ExplSyntaxOn
-\pdfdict_put:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
-\pdfdict_put:nnn {Info}{Creator}{(l3build test)}
+\pdfdict_gput:nnn {Info}{CreationDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{ModDate}{(D:20200202111111+01'00')}
+\pdfdict_gput:nnn {Info}{Creator}{(l3build test)}
 \ExplSyntaxOff
 \href{blub.pdf#destination}{pdf}
 
diff --git a/testfiles-noxetex/extgstate-patches.pvt b/testfiles-noxetex/extgstate-patches.pvt
index ee04fd1..316ace6 100644
--- a/testfiles-noxetex/extgstate-patches.pvt
+++ b/testfiles-noxetex/extgstate-patches.pvt
@@ -20,6 +20,6 @@
 abc\texttransparent{0.6}{XXXXXXXXXX}
 
 \ExplSyntaxOn
-\pdfdict_put:nnn{Page/Resources/ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
+\pdfdict_gput:nnn{Page/Resources/ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
 \ExplSyntaxOff
 \end{document} 
\ No newline at end of file
diff --git a/testfiles-noxetex/metadata.pvt b/testfiles-noxetex/metadata.pvt
index 2220189..220d68e 100644
--- a/testfiles-noxetex/metadata.pvt
+++ b/testfiles-noxetex/metadata.pvt
@@ -21,7 +21,7 @@
 \makeatother
 \ExplSyntaxOn
 \pdf_object_new:nn{metadata-obj}{stream}
-\pdfdict_put:nnx {Catalog} {Metadata}{\pdf_object_ref:n{metadata-obj}}
+\pdfdict_gput:nnx {Catalog} {Metadata}{\pdf_object_ref:n{metadata-obj}}
 \ExplSyntaxOff
 
  \begin{document}
diff --git a/testfiles-noxetex/test-new-transparent.pvt b/testfiles-noxetex/test-new-transparent.pvt
index dc9bb3c..e844251 100644
--- a/testfiles-noxetex/test-new-transparent.pvt
+++ b/testfiles-noxetex/test-new-transparent.pvt
@@ -10,7 +10,7 @@
 \begin{document}
 %\START
 \ExplSyntaxOn
-\pdfdict_put:nnn{Page/Resources/ExtGState}{duckopacity}{<</ca~0.2/CA~0.2>>}
+\pdfdict_gput:nnn{Page/Resources/ExtGState}{duckopacity}{<</ca~0.2/CA~0.2>>}
 \ExplSyntaxOff
 \texttransparent{0.5}{xxxxxxxxxxx}
 \texttransparent{0.3}{xxxxxxxxxxx}
diff --git a/testfiles/catalog-remove.lvt b/testfiles/catalog-remove.lvt
index 1b4553b..e3abe55 100644
--- a/testfiles/catalog-remove.lvt
+++ b/testfiles/catalog-remove.lvt
@@ -7,21 +7,21 @@
 \begin{document}
 \START
 \ExplSyntaxOn
-\pdfdict_put:nnn {Catalog }                   {Lang}        {(de-De)}
-\pdfdict_put:nnn {Catalog }                   {PageLayout}  {/SinglePage}
-\pdfdict_put:nnn {Catalog / MarkInfo}         {Marked}      {True}
-\pdfdict_put:nnn {Catalog / ViewerPreferences}{HideToolbar} {true}
-\pdfdict_put:nnn {Catalog / AcroForm/DR/Font} {Name}       {<</ABC/CDE>>}
-\pdfdict_put:nnn {Catalog / AcroForm/DR/Font} {NameB}      {<</ABC/CDE>>}
+\pdfdict_gput:nnn {Catalog }                   {Lang}        {(de-De)}
+\pdfdict_gput:nnn {Catalog }                   {PageLayout}  {/SinglePage}
+\pdfdict_gput:nnn {Catalog / MarkInfo}         {Marked}      {True}
+\pdfdict_gput:nnn {Catalog / ViewerPreferences}{HideToolbar} {true}
+\pdfdict_gput:nnn {Catalog / AcroForm/DR/Font} {Name}       {<</ABC/CDE>>}
+\pdfdict_gput:nnn {Catalog / AcroForm/DR/Font} {NameB}      {<</ABC/CDE>>}
 \pdfdict_show:n {Catalog}
 \pdfdict_show:n {Catalog/ViewerPreferences}
 \pdfdict_show:n {Catalog/MarkInfo}
 \pdfdict_show:n {Catalog/AcroForm/DR/Font}
-\pdfdict_remove:nn {Catalog / ViewerPreferences } {HideToolbar}
-\pdfdict_remove:nn {Catalog }                     {PageMode}
-\pdfdict_remove:nn {Catalog }                     {PageLayout}
-\pdfdict_remove:nn {Catalog / MarkInfo }          {Marked }
-\pdfdict_remove:nn {Catalog / AcroForm/DR/Font}   {Name}
+\pdfdict_gremove:nn {Catalog / ViewerPreferences } {HideToolbar}
+\pdfdict_gremove:nn {Catalog }                     {PageMode}
+\pdfdict_gremove:nn {Catalog }                     {PageLayout}
+\pdfdict_gremove:nn {Catalog / MarkInfo }          {Marked }
+\pdfdict_gremove:nn {Catalog / AcroForm/DR/Font}   {Name}
 \pdfdict_show:n {Catalog}
 \pdfdict_show:n {Catalog/ViewerPreferences}
 \pdfdict_show:n {Catalog/MarkInfo}
diff --git a/testfiles/catalogAF.pvt b/testfiles/catalogAF.pvt
index 2254520..6e252d5 100644
--- a/testfiles/catalogAF.pvt
+++ b/testfiles/catalogAF.pvt
@@ -15,8 +15,8 @@
 \pdf_object_new:nn   {filespec2}{dict}
 \pdf_object_write:nn {filespec2} {/Type /Filespec /UF (example2.pdf)}
 
-\pdfdict_put:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec1}}
-\pdfdict_put:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec2}}
+\pdfdict_gput:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec1}}
+\pdfdict_gput:nnx { Catalog } {AF} {\pdf_object_ref:n {filespec2}}
 \ExplSyntaxOff
 \begin{document}
 \START
diff --git a/testfiles/infodict.pvt b/testfiles/infodict.pvt
index 35266b1..2730177 100644
--- a/testfiles/infodict.pvt
+++ b/testfiles/infodict.pvt
@@ -10,8 +10,8 @@
 {
  \str_set_convert:Nnnn \l_tmpa_str { Grüße }{  } {utf8/string}
 }
-\pdfdict_put:nnx {Info} {Title}{(\l_tmpa_str)}
-\pdfdict_put:nnx {Info} {Author}{(Some~Author)}
+\pdfdict_gput:nnx {Info} {Title}{(\l_tmpa_str)}
+\pdfdict_gput:nnx {Info} {Author}{(Some~Author)}
 \ExplSyntaxOff
 \begin{document}
 \START
diff --git a/testfiles/mixpageattr.pvt b/testfiles/mixpageattr.pvt
index 3329cf8..c4feef6 100644
--- a/testfiles/mixpageattr.pvt
+++ b/testfiles/mixpageattr.pvt
@@ -5,7 +5,7 @@
 \usepackage{fancyhdr,zref-user}
 \pagestyle{fancy}
 \ExplSyntaxOn \makeatletter
-\lfoot{\pdfdict_put:nnx {Page} {Rotate}{\ifodd\c at page -90\else 90 \fi}}
+\lfoot{\pdfdict_gput:nnx {Page} {Rotate}{\ifodd\c at page -90\else 90 \fi}}
 \ExplSyntaxOff
 \usepackage{kantlipsum}
 \begin{document}
@@ -16,7 +16,7 @@ some text \kant
 \ExplSyntaxOn
 \begin{figure}%[p]
 \zlabel{a}\label{a}
-\pdfdict_put:nnx {ThisPage}{Rotate}{90}
+\pdfdict_gput:nnx {ThisPage}{Rotate}{90}
 \Huge
 code~is~on~page~\thepage\par
 float~is~on~page~\zpageref{a}\par
diff --git a/testfiles/ocproperties.pvt b/testfiles/ocproperties.pvt
index 8424ecd..c188da8 100644
--- a/testfiles/ocproperties.pvt
+++ b/testfiles/ocproperties.pvt
@@ -49,9 +49,9 @@
   /OFF /Blabla
  }
 
-\pdfdict_put:nnx { Catalog / OCProperties } {OCGs}{\pdf_object_ref:n {ocg1}}
-\pdfdict_put:nnx { Catalog / OCProperties } {OCGs}{\pdf_object_ref:n {ocg2}}
-\pdfdict_put:nnx { Catalog / OCProperties } {D}{\pdf_object_ref:n {ocgd}}
+\pdfdict_gput:nnx { Catalog / OCProperties } {OCGs}{\pdf_object_ref:n {ocg1}}
+\pdfdict_gput:nnx { Catalog / OCProperties } {OCGs}{\pdf_object_ref:n {ocg2}}
+\pdfdict_gput:nnx { Catalog / OCProperties } {D}{\pdf_object_ref:n {ocgd}}
 
 \ExplSyntaxOff
 
diff --git a/testfiles/pageattr.pvt b/testfiles/pageattr.pvt
index f9ffeac..bf0c8c6 100644
--- a/testfiles/pageattr.pvt
+++ b/testfiles/pageattr.pvt
@@ -6,24 +6,24 @@
 \START
 some text
 \ExplSyntaxOn
- \pdfdict_put:nnn {Page} {Rotate}{90}
+ \pdfdict_gput:nnn {Page} {Rotate}{90}
 %test local:
-{\pdfdict_put:nnn {Page} {CropBox}{[0~0~300~350]}}
+{\pdfdict_gput:nnn {Page} {CropBox}{[0~0~300~350]}}
 
 %test doublette
- \pdfdict_put:nnn {Page} {Rotate}{90}
+ \pdfdict_gput:nnn {Page} {Rotate}{90}
 
 %test command:
 \newcommand\attributecontent{(somesetting)}
-\pdfdict_put:nnx {Page} {SSS}{\attributecontent}
+\pdfdict_gput:nnx {Page} {SSS}{\attributecontent}
 
 \newpage
-\pdfdict_remove:nn {Page}{Rotate}
-\pdfdict_remove:nn {Page}{CropBox}
+\pdfdict_gremove:nn {Page}{Rotate}
+\pdfdict_gremove:nn {Page}{CropBox}
 some text more text
 \begin{figure}[p]
 \rule{1cm}{15cm}
-\pdfdict_put:nnn {ThisPage}{Rotate}{-90}
+\pdfdict_gput:nnn {ThisPage}{Rotate}{-90}
 \end{figure}
 \newpage
 abbb
diff --git a/testfiles/pagesattr.pvt b/testfiles/pagesattr.pvt
index 706180c..2903698 100644
--- a/testfiles/pagesattr.pvt
+++ b/testfiles/pagesattr.pvt
@@ -6,16 +6,16 @@
 \START
 some text
 \ExplSyntaxOn
- \pdfdict_put:nnn {Pages} {YYY}{(yyy)}
+ \pdfdict_gput:nnn {Pages} {YYY}{(yyy)}
 %test local:
-{\pdfdict_put:nnn {Pages} {ZZZ}{(zzz)}}
+{\pdfdict_gput:nnn {Pages} {ZZZ}{(zzz)}}
 
 %test doublette
- \pdfdict_put:nnn {Pages} {YYY}{(y22)}
+ \pdfdict_gput:nnn {Pages} {YYY}{(y22)}
 
 %test command:
 \newcommand\attributecontent{(somesetting)}
-\pdfdict_put:nnn {Pages} {SSS}{\attributecontent}
+\pdfdict_gput:nnn {Pages} {SSS}{\attributecontent}
 %\tl_show:N\g__pdf_pagesattr_tl
 \ExplSyntaxOff
 \end{document} 
\ No newline at end of file
diff --git a/testfiles/thispageattr.pvt b/testfiles/thispageattr.pvt
index 62e8b6f..f35388c 100644
--- a/testfiles/thispageattr.pvt
+++ b/testfiles/thispageattr.pvt
@@ -18,7 +18,7 @@
 
 \begin{figure}[p]
 \zlabel{a}\label{a}
-\pdfdict_put:nnx{ThisPage}{Rotate}{\myrotate{a}}
+\pdfdict_gput:nnx{ThisPage}{Rotate}{\myrotate{a}}
 \Huge
 code~is~on~page~\thepage\par
 float~is~on~page~\zpageref{a}\par
@@ -27,7 +27,7 @@ float~is~on~page~\zpageref{a}\par
 
 \begin{figure}[p]
 \zlabel{b}
-\pdfdict_put:nnx{ThisPage}{Rotate}{\myrotate{b}}
+\pdfdict_gput:nnx{ThisPage}{Rotate}{\myrotate{b}}
 \Huge
 code~is~on~page~\thepage\par
 \label{b}float~is~on~page~\pageref{b}\par
diff --git a/testfiles/xform.pvt b/testfiles/xform.pvt
index c05d95e..b1f7b26 100644
--- a/testfiles/xform.pvt
+++ b/testfiles/xform.pvt
@@ -9,7 +9,7 @@ text
 
 \pdf_xform_new:nnn  {myxformA}{/yyy~(bla)}{yyyyy}
 
-\pdfdict_put:nnn{Page/Resources/ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
+\pdfdict_gput:nnn{Page/Resources/ExtGState}{bearopacity}{<</ca~0.7/CA~0.7>>}
 
 \pdf_xform_new:nnn  {myxform}{/yyy~(bla)}{xxxxxxxxxx}
 





More information about the latex3-commits mailing list.