diff options
author | bapt <bapt@FreeBSD.org> | 2014-06-06 18:32:29 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2014-06-06 18:32:29 +0800 |
commit | 1f3f79ad5a50227fb483fd84fc6750762216913f (patch) | |
tree | 24eda5298a44a68eb180b4bd336e7852f3f82f06 | |
parent | 1dd5de47ee692890e79a16742419cf430522607f (diff) | |
download | freebsd-ports-gnome-1f3f79ad5a50227fb483fd84fc6750762216913f.tar.gz freebsd-ports-gnome-1f3f79ad5a50227fb483fd84fc6750762216913f.tar.zst freebsd-ports-gnome-1f3f79ad5a50227fb483fd84fc6750762216913f.zip |
Fix build with recent cups
Reported by: "Herbert J. Skuhra" <hskuhra@eumx.net>
-rw-r--r-- | graphics/epdfview/files/patch-cups | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/graphics/epdfview/files/patch-cups b/graphics/epdfview/files/patch-cups new file mode 100644 index 000000000000..9095c48c0b62 --- /dev/null +++ b/graphics/epdfview/files/patch-cups @@ -0,0 +1,74 @@ +diff -Naur epdfview-0.1.8.orig/src/PrintPter.cxx epdfview-0.1.8/src/PrintPter.cxx +--- src/PrintPter.cxx 2011-05-28 11:25:01.000000000 +0100 ++++ src/PrintPter.cxx 2012-08-22 20:11:46.362436859 +0100 +@@ -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 @@ + + 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 @@ + 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 @@ + 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); + |