summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2022-04-03 22:55:12 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2022-04-03 22:55:12 +0000
commitf1cf5476a59325e050767c85640bc820735924c2 (patch)
tree91052dd4f93e6b63a669b192d28bf309e19e4919 /Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
parenteb04a90ed55d30b8ab8eb05798a8077975e098e1 (diff)
tlgs: gs 9.56.0
git-svn-id: svn://tug.org/texlive/trunk@62895 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/pdf_base.ps')
-rw-r--r--Master/tlpkg/tlgs/Resource/Init/pdf_base.ps26
1 files changed, 17 insertions, 9 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
index 2453b6bc1d3..87b9650d8c1 100644
--- a/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
+++ b/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
@@ -1401,15 +1401,23 @@ currentdict /pdf_rules_dict undef
} bind executeonly def
/.leafget { % <key> <pairs> .leafget <obj|null>
- dup length 2 eq {
- dup 0 get 2 index eq { 1 oget } { pop //null } ifelse
- exch pop
- } {
- dup length -1 bitshift -2 and 2 copy oget
- % Stack: key pairs mid pairs[mid]
- 3 index gt { 0 exch } { 1 index length 1 index sub } ifelse
- getinterval .leafget
- } ifelse
+ null % <key> [pairs] null
+ 0 2 3 index length 1 sub % <key> [pairs] null 0 2 length([pairs])
+ { % <key> [pairs] null index
+ 2 index % <key> [pairs] null index [pairs]
+ exch % <key> [pairs] null [pairs] index
+ 2 getinterval % <key> [pairs] null [<key1> <value>]
+ dup 0 get % <key> [pairs] null [<key1> <value>] <key1>
+ 4 index % <key> [pairs] null [<key1> <value>] <key1> <key>
+ eq
+ { % <key> [pairs] null [<key1> <value>]
+ exch pop 1 oget exit % <key> [pairs] <obj>
+ } {
+ pop % <key> [pairs] null
+ }ifelse
+ } for
+ % <key> [pairs] <obj|null>
+ 3 1 roll pop pop % <obj|null>
} bind executeonly def
% The following variants return tree entry whose key is closest but