diff options
Diffstat (limited to 'libre/epdfview-libre/epdfview-0.1.8-cups-1.6.1.patch')
-rw-r--r-- | libre/epdfview-libre/epdfview-0.1.8-cups-1.6.1.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libre/epdfview-libre/epdfview-0.1.8-cups-1.6.1.patch b/libre/epdfview-libre/epdfview-0.1.8-cups-1.6.1.patch new file mode 100644 index 000000000..739579d29 --- /dev/null +++ b/libre/epdfview-libre/epdfview-0.1.8-cups-1.6.1.patch @@ -0,0 +1,74 @@ +diff -up epdfview-0.1.8/configure.ac.cups16 epdfview-0.1.8/configure.ac +diff -up epdfview-0.1.8/src/PrintPter.cxx.cups16 epdfview-0.1.8/src/PrintPter.cxx +--- epdfview-0.1.8/src/PrintPter.cxx.cups16 2011-05-28 12:25:01.000000000 +0200 ++++ epdfview-0.1.8/src/PrintPter.cxx 2012-07-20 15:04:30.846111813 +0200 +@@ -22,6 +22,40 @@ + #include <locale.h> + #include "epdfview.h" + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++inline int ippGetInteger (ipp_attribute_t *attr, int element) ++{ ++ return (attr->values[element].integer); ++} ++ ++inline const char * ippGetString (ipp_attribute_t *attr, ++ int element, ++ const char **language /*UNUSED*/) ++{ ++ return (attr->values[element].string.text); ++} ++ ++inline int ippSetOperation (ipp_t *ipp, ipp_op_t op) ++{ ++ if (!ipp) ++ return (0); ++ ipp->request.op.operation_id = op; ++ return (1); ++} ++ ++inline int ippSetRequestId (ipp_t *ipp, int request_id) ++{ ++ if (!ipp) ++ return (0); ++ ipp->request.any.request_id = request_id; ++ return (1); ++} ++#endif ++ + using namespace ePDFView; + + // Structures +@@ -380,8 +414,8 @@ PrintPter::getPrinterAttributes (const g + + ipp_t *request = ippNew (); + +- request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; +- request->request.op.request_id = 1; ++ ippSetOperation(request, IPP_GET_PRINTER_ATTRIBUTES); ++ ippSetRequestId(request, 1); + + ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, + "attributes-charset", NULL, "utf-8"); +@@ -403,7 +437,7 @@ PrintPter::getPrinterAttributes (const g + ippFindAttribute (answer, "printer-state", IPP_TAG_ZERO); + if ( NULL != state ) + { +- switch (state->values[0].integer) ++ switch (ippGetInteger (state, 0)) + { + case IPP_PRINTER_IDLE: + attributes->state = g_strdup (_("Idle")); +@@ -425,7 +459,7 @@ PrintPter::getPrinterAttributes (const g + ippFindAttribute (answer, "printer-location", IPP_TAG_ZERO); + if ( NULL != location ) + { +- attributes->location = g_strdup (location->values[0].string.text); ++ attributes->location = g_strdup (ippGetString (location, 0, NULL)); + } + + ippDelete (answer); |