diff options
author | Luigi Scarso <luigi.scarso@gmail.com> | 2021-12-31 10:38:50 +0000 |
---|---|---|
committer | Luigi Scarso <luigi.scarso@gmail.com> | 2021-12-31 10:38:50 +0000 |
commit | cb71b62afd23fc35a04304858ee2d221b8a51dcb (patch) | |
tree | 17511b8aa9976f8420b25c24dc1060b65074257c /Build/source/texk/web2c/luatexdir/tex/texnodes.c | |
parent | c46a6d281af96d35e0b0efa75a7aafac88677a8a (diff) |
sync luatex with upstream r7476.
git-svn-id: svn://tug.org/texlive/trunk@61453 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/texnodes.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/texnodes.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.c b/Build/source/texk/web2c/luatexdir/tex/texnodes.c index 02e117a876b..4e645fda976 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.c +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.c @@ -1107,7 +1107,8 @@ void l_set_whatsit_data(void) { init_field_key(node_fields_whatsit_pdf_action, 3, file); init_field_key(node_fields_whatsit_pdf_action, 4, new_window); init_field_key(node_fields_whatsit_pdf_action, 5, data); - init_field_nop(node_fields_whatsit_pdf_action, 6); + init_field_key(node_fields_whatsit_pdf_action, 6, struct_id); + init_field_nop(node_fields_whatsit_pdf_action, 7); init_field_key(node_fields_whatsit_pdf_annot, 0, attr); init_field_key(node_fields_whatsit_pdf_annot, 1, width); @@ -2302,8 +2303,10 @@ void flush_node_wrapup_pdf(halfword p) delete_token_ref(pdf_action_file(p)); if (pdf_action_type(p) == pdf_action_page) delete_token_ref(pdf_action_tokens(p)); - else if (pdf_action_named_id(p) > 0) + else if (pdf_action_named_id(p) & 1) delete_token_ref(pdf_action_id(p)); + if (pdf_action_named_id(p) & 2) + delete_token_ref(pdf_action_struct_id(p)); } break; case pdf_thread_data_node: @@ -3636,9 +3639,21 @@ void show_node_wrapup_pdf(int p) tprint(" file"); print_mark(pdf_action_file(pdf_link_action(p))); } + if (pdf_action_struct_id(pdf_link_action(p)) != null) { + tprint(" struct"); + if (pdf_action_file(pdf_link_action(p)) != null) { + print_mark(pdf_action_struct_id(pdf_link_action(p))); + } else if (pdf_action_named_id(pdf_link_action(p)) & 2) { + tprint(" name"); + print_mark(pdf_action_struct_id(pdf_link_action(p))); + } else { + tprint(" num"); + print_int(pdf_action_struct_id(pdf_link_action(p))); + } + } switch (pdf_action_type(pdf_link_action(p))) { case pdf_action_goto: - if (pdf_action_named_id(pdf_link_action(p)) > 0) { + if (pdf_action_named_id(pdf_link_action(p)) & 1) { tprint(" goto name"); print_mark(pdf_action_id(pdf_link_action(p))); } else { @@ -3652,7 +3667,7 @@ void show_node_wrapup_pdf(int p) print_mark(pdf_action_tokens(pdf_link_action(p))); break; case pdf_action_thread: - if (pdf_action_named_id(pdf_link_action(p)) > 0) { + if (pdf_action_named_id(pdf_link_action(p)) & 1) { tprint(" thread name"); print_mark(pdf_action_id(pdf_link_action(p))); } else { |