summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/pdf
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2019-10-23 10:18:54 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2019-10-23 10:18:54 +0000
commit51f7cee7467569b9546d4d6d734f17da517b2b7a (patch)
tree540f68a0e6492622fe14f5a9072aa705847fcd35 /Build/source/texk/web2c/luatexdir/pdf
parent4d6504c339b37aa04c36ab3e5af83c5d3ed170d4 (diff)
luatex: different page reshuffle callback. WARNING: DROPPED the "page_objnum_provider" callback, replaced with "page_order_index". (HH)
git-svn-id: svn://tug.org/texlive/trunk@52497 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf')
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfgen.c7
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.c27
2 files changed, 13 insertions, 21 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.c b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.c
index 0bd5a3a7b12..3d37102b29a 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.c
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.c
@@ -1777,7 +1777,12 @@ void pdf_end_page(PDF pdf)
if (callback_id > 0)
run_callback(callback_id, "b->",(global_shipping_mode == SHIPPING_PAGE));
if (global_shipping_mode == SHIPPING_PAGE) {
- pdf->last_pages = pdf_do_page_divert(pdf, pdf->last_page, 0);
+ int location = 0;
+ int callback_id = callback_defined(page_order_index_callback);
+ if (callback_id) {
+ run_callback(callback_id, "d->d", total_pages, &location);
+ }
+ pdf->last_pages = pdf_do_page_divert(pdf, pdf->last_page, location);
/*tex Write out the |/Page| object. */
pdf_begin_obj(pdf, pdf->last_page, OBJSTM_ALWAYS);
pdf_begin_dict(pdf);
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.c b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.c
index 4fcd48e341f..f21412f9a98 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.c
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.c
@@ -162,7 +162,7 @@ void pdf_do_page_undivert(int divnum, int curdivnum)
/*tex Write a |/Pages| object. */
-static void write_pages(PDF pdf, pages_entry * p, int parent, int callback_id)
+static void write_pages(PDF pdf, pages_entry * p, int parent)
{
int i;
int pages_attributes ;
@@ -185,19 +185,7 @@ static void write_pages(PDF pdf, pages_entry * p, int parent, int callback_id)
pdf_add_name(pdf, "Kids");
pdf_begin_array(pdf);
for (i = 0; i < p->number_of_kids; i++) {
- if (callback_id) {
- /* new */
- int objnum = (int) p->kids[i];
- if (obj_type(pdf, objnum) == obj_type_page) {
- run_callback(callback_id, "d->d", objnum, &objnum);
- check_obj_exists(pdf, objnum);
- pdf_add_ref(pdf, (int) objnum);
- } else {
- pdf_add_ref(pdf, (int) p->kids[i]);
- }
- } else {
- pdf_add_ref(pdf, (int) p->kids[i]);
- }
+ pdf_add_ref(pdf, (int) p->kids[i]);
}
pdf_end_array(pdf);
pdf_end_dict(pdf);
@@ -211,12 +199,12 @@ static void write_pages(PDF pdf, pages_entry * p, int parent, int callback_id)
*/
-static int output_pages_list(PDF pdf, pages_entry * pe, int callback_id)
+static int output_pages_list(PDF pdf, pages_entry * pe)
{
pages_entry *p, *q, *r;
if (pe->next == NULL) {
/*tex Everything fits into one |pages_entry|. */
- write_pages(pdf, pe, 0, callback_id);
+ write_pages(pdf, pe, 0);
return pe->objnum;
}
/*tex One level higher needed. */
@@ -228,19 +216,18 @@ static int output_pages_list(PDF pdf, pages_entry * pe, int callback_id)
}
q->kids[q->number_of_kids++] = p->objnum;
q->number_of_pages += p->number_of_pages;
- write_pages(pdf, p, q->objnum, callback_id);
+ write_pages(pdf, p, q->objnum);
}
/*tex Recurse through next higher level. */
- return output_pages_list(pdf, r, callback_id);
+ return output_pages_list(pdf, r);
}
int output_pages_tree(PDF pdf)
{
- int callback_id = callback_defined(page_objnum_provider_callback);
divert_list_entry *d;
/*tex Concatenate all diversions into diversion 0. */
pdf_do_page_undivert(0, 0);
/*tex Get diversion 0. */
d = get_divert_list(0);
- return output_pages_list(pdf, d->first, callback_id);
+ return output_pages_list(pdf, d->first);
}