summaryrefslogtreecommitdiff
path: root/Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff')
-rw-r--r--Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff103
1 files changed, 103 insertions, 0 deletions
diff --git a/Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff b/Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff
new file mode 100644
index 00000000000..7c9ff45c660
--- /dev/null
+++ b/Build/source/texk/xdvipdfmx/contrib/patches/patch-ebb-artbox.diff
@@ -0,0 +1,103 @@
+--- ebb.c.orig Fri Jun 29 04:55:26 2001
++++ ebb.c Tue Dec 2 11:48:16 2003
+@@ -40,7 +40,7 @@
+ #endif
+
+ #define EBB_PROGRAM "ebb"
+-#define EBB_VERSION "Version 0.5.2"
++#define EBB_VERSION "Version 0.5.2 (+ArtBox)"
+
+ static void usage (void)
+ {
+@@ -51,11 +51,13 @@
+ fprintf (stderr, "under certain conditions. Details are distributed with the software.\n");
+ fprintf (stderr, "\nUsage: [-v] [-b] ebb [files]\n");
+ fprintf (stderr, "\t-b\t\tWrite .bb file in binary mode\n");
++ fprintf (stderr, "\t-c\t\tUse MediaBox/CropBox for BoundingBox. (PDF)\n");
+ fprintf (stderr, "\t-v\t\tVerbose\n");
+ exit(1);
+ }
+
+ static char verbose = 0;
++static char compat = 0;
+
+ static void do_time(FILE *file)
+ {
+@@ -189,7 +191,7 @@
+
+ void do_pdf (FILE *file, char *filename)
+ {
+- pdf_obj *trailer, *catalog, *page_tree, *media_box, *crop_box;
++ pdf_obj *trailer, *catalog, *page_tree, *media_box, *crop_box, *rotate;
+ pdf_obj *kids_ref, *kids, *tmp1;
+ if (verbose) {
+ fprintf (stderr, "%s looks like a PDF file...", filename);
+@@ -211,6 +213,7 @@
+ /* Media box can be inherited so start looking for it now */
+ media_box = pdf_deref_obj (pdf_lookup_dict (page_tree, "MediaBox"));
+ crop_box = pdf_deref_obj (pdf_lookup_dict (page_tree, "CropBox"));
++ rotate = pdf_deref_obj(pdf_lookup_dict(page_tree, "Rotate"));
+ while ((kids_ref = pdf_lookup_dict (page_tree, "Kids")) != NULL) {
+ kids = pdf_deref_obj (kids_ref);
+ pdf_release_obj (page_tree);
+@@ -228,15 +231,43 @@
+ pdf_release_obj (crop_box);
+ if (tmp1)
+ crop_box = tmp1;
++ tmp1 = pdf_deref_obj(pdf_lookup_dict(page_tree, "Rotate"));
++ if (tmp1 && rotate)
++ pdf_release_obj (rotate);
++ if (tmp1)
++ rotate = tmp1;
+ }
++
++ if (crop_box) {
++ pdf_release_obj(media_box);
++ media_box = crop_box;
++ }
++
++ if (!compat) {
++ pdf_obj *tmp;
++
++ if ((tmp = pdf_deref_obj(pdf_lookup_dict(page_tree, "TrimBox")))) {
++ if (media_box)
++ pdf_release_obj(media_box);
++ media_box = tmp;
++ }
++ if ((tmp = pdf_deref_obj(pdf_lookup_dict(page_tree, "BleedBox")))) {
++ if (media_box)
++ pdf_release_obj(media_box);
++ media_box = tmp;
++ }
++ if ((tmp = pdf_deref_obj(pdf_lookup_dict(page_tree, "ArtBox")))) {
++ if (media_box)
++ pdf_release_obj(media_box);
++ media_box = tmp;
++ }
++ if (rotate && pdf_number_value(rotate) != 0.0)
++ fprintf(stderr, "\n<< /Rotate %d >> found.\n", (int)pdf_number_value(rotate));
++ }
++
+ /* At this point, we should have the media box for the first page */
+ {
+ pdf_obj *bbllx, *bblly, *bburx, *bbury;
+- if (crop_box) {
+- pdf_release_obj (media_box);
+- media_box = crop_box;
+- crop_box = NULL;
+- }
+ if ((bbllx = pdf_get_array (media_box, 0)) == NULL ||
+ (bblly = pdf_get_array (media_box, 1)) == NULL ||
+ (bburx = pdf_get_array (media_box, 2)) == NULL ||
+@@ -267,6 +298,11 @@
+ bb_file_mode = FOPEN_WBIN_MODE;
+ case 'v':
+ verbose = 1;
++ argc -= 1;
++ argv += 1;
++ break;
++ case 'c':
++ compat = 1;
+ argc -= 1;
+ argv += 1;
+ break;