cups/cups-page-label.patch
Tim Waugh 8399d834ef - 1.4.4. Fixes several security vulnerabilities (bug #605399):
CVE-2010-0540, CVE-2010-0542, CVE-2010-1748. No longer need str3503,
    str3399, str3505, str3541, str3425p2 or CVE-2010-0302 patches.
- Fix lpd provides.
- Added comments for all sources and patches.
- Reset status after successful ipp job (bug #548219, STR #3460).
- Install udev rules in correct place (bug #530378).
- Removed unapplied gnutls-gcrypt-threads patch. Fixed typos in
    descriptions for lpd and php sub-packages.
- Add an SNMP query for Ricoh's device ID OID (STR #3552).
- Mark DNS-SD Device IDs that have been guessed at with "FZY:1;".
- Add an SNMP query for HP's device ID OID (STR #3552).
2010-06-18 10:42:26 +00:00

93 lines
2.8 KiB
Diff

diff -up cups-1.4.4/filter/pstops.c.page-label cups-1.4.4/filter/pstops.c
--- cups-1.4.4/filter/pstops.c.page-label 2010-03-30 23:07:33.000000000 +0100
+++ cups-1.4.4/filter/pstops.c 2010-06-18 09:36:18.239126341 +0100
@@ -108,6 +108,7 @@ typedef struct /**** Document informa
int num_options; /* Number of document-wide options */
cups_option_t *options; /* Document-wide options */
int normal_landscape, /* Normal rotation for landscape? */
+ orientation, /* Original orientation of the document */
saw_eof, /* Saw the %%EOF comment? */
slow_collate, /* Collate copies by hand? */
slow_duplex, /* Duplex pages slowly? */
@@ -2083,7 +2084,7 @@ do_setup(pstops_doc_t *doc, /* I - Docu
* of the pages...
*/
- if (Orientation & 1)
+ if (doc->orientation & 1)
write_label_prolog(doc, doc->page_label, PageBottom,
PageWidth - PageLength + PageTop, PageLength);
else
@@ -2091,7 +2092,30 @@ do_setup(pstops_doc_t *doc, /* I - Docu
PageLength);
}
else
- write_label_prolog(doc, doc->page_label, PageBottom, PageTop, PageWidth);
+ {
+ switch (doc->orientation)
+ {
+ case 0 :
+ write_label_prolog(doc, doc->page_label, PageBottom, PageTop,
+ PageWidth);
+ break;
+
+ case 1 :
+ write_label_prolog(doc, doc->page_label, PageLeft, PageRight,
+ PageLength);
+ break;
+
+ case 2 :
+ write_label_prolog(doc, doc->page_label, PageLength - PageTop,
+ PageLength - PageBottom, PageWidth);
+ break;
+
+ case 3 :
+ write_label_prolog(doc, doc->page_label, PageWidth - PageRight,
+ PageWidth - PageLeft, PageLength);
+ break;
+ }
+ }
}
@@ -2176,7 +2200,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum
case 1 :
if (doc->use_ESPshowpage)
{
- write_labels(doc, Orientation);
+ write_labels(doc, doc->orientation);
doc_puts(doc, "ESPshowpage\n");
}
break;
@@ -2191,7 +2215,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum
* Rotate the labels back to portrait...
*/
- write_labels(doc, Orientation - 1);
+ write_labels(doc, doc->orientation - 1);
}
else if (Orientation == 0)
{
@@ -2217,7 +2241,7 @@ end_nup(pstops_doc_t *doc, /* I - Docum
default :
if (is_last_page(number) && doc->use_ESPshowpage)
{
- write_labels(doc, Orientation);
+ write_labels(doc, doc->orientation);
doc_puts(doc, "ESPshowpage\n");
}
break;
@@ -2420,6 +2444,12 @@ set_pstops_options(
doc->new_bounding_box[3] = INT_MIN;
/*
+ * Save original orientation of the document
+ */
+
+ doc->orientation = Orientation;
+
+ /*
* AP_FIRSTPAGE_* and the corresponding non-first-page options.
*/