diff options
Diffstat (limited to 'office/epdfview/epdfview-0.1.8-fixes-1.patch')
-rw-r--r-- | office/epdfview/epdfview-0.1.8-fixes-1.patch | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/office/epdfview/epdfview-0.1.8-fixes-1.patch b/office/epdfview/epdfview-0.1.8-fixes-1.patch new file mode 100644 index 0000000000..5e8ec288f2 --- /dev/null +++ b/office/epdfview/epdfview-0.1.8-fixes-1.patch @@ -0,0 +1,146 @@ +Submitted By: Ken Moffat <ken at linuxfromscratch dot org> +Date: 2012-08-22 +Initial Package Version: 0.1.8 +Upstream Status: Varies +Origin: Found at fedora. +Description: Three fixes found at fedora. For the first (only glib.h +can be included directly, with recent glib), we used to use a sed - but +the other two fixes need patches so I've put them all together. + + Second part is from upstream and fixes trashed colours +Upstream: http://trac.emma-soft.com/epdfview/changeset/367/trunk +Fixes bug: https://bugzilla.redhat.com/show_bug.cgi?id=745483 + + Third part is the most critical - from Jiri Popelka, found at +https://bugzilla.redhat.com/show_bug.cgi?id=841880 - looks as if fedora +haven't applied it yet. It solves building with cups-1.6. + +diff -Naur epdfview-0.1.8.orig/src/gtk/StockIcons.h epdfview-0.1.8/src/gtk/StockIcons.h +--- epdfview-0.1.8.orig/src/gtk/StockIcons.h 2011-05-28 11:24:57.000000000 +0100 ++++ epdfview-0.1.8/src/gtk/StockIcons.h 2012-08-22 20:06:08.728195806 +0100 +@@ -18,7 +18,7 @@ + #if !defined (__STOCK_ICONS_H__) + #define __STOCK_ICONS_H__ + +-#include <glib/gmacros.h> ++#include <glib.h> + + G_BEGIN_DECLS + +diff -Naur epdfview-0.1.8.orig/src/PDFDocument.cxx epdfview-0.1.8/src/PDFDocument.cxx +--- epdfview-0.1.8.orig/src/PDFDocument.cxx 2011-05-28 11:25:01.000000000 +0100 ++++ epdfview-0.1.8/src/PDFDocument.cxx 2012-08-22 20:07:03.627913886 +0100 +@@ -20,6 +20,7 @@ + #include <time.h> + #include <poppler.h> + #include <unistd.h> ++#include <algorithm> + #include "epdfview.h" + + using namespace ePDFView; +@@ -33,6 +34,24 @@ + static PageMode convertPageMode (gint pageMode); + static gchar *getAbsoluteFileName (const gchar *fileName); + ++namespace ++{ ++ void ++ convert_bgra_to_rgba (guint8 *data, int width, int height) ++ { ++ using std::swap; ++ ++ for (int y = 0; y < height; y++) ++ { ++ for (int x = 0; x < width; x++) ++ { ++ swap(data[0], data[2]); ++ data += 4; ++ } ++ } ++ } ++} ++ + /// + /// @brief Constructs a new PDFDocument object. + /// +@@ -650,6 +669,7 @@ + poppler_page_render (page, context); + cairo_destroy(context); + cairo_surface_destroy (surface); ++ convert_bgra_to_rgba(renderedPage->getData (), width, height); + #else // !HAVE_POPPLER_0_17_0 + // Create the pixbuf from the data and render to it. + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data (renderedPage->getData (), +diff -Naur epdfview-0.1.8.orig/src/PrintPter.cxx epdfview-0.1.8/src/PrintPter.cxx +--- epdfview-0.1.8.orig/src/PrintPter.cxx 2011-05-28 11:25:01.000000000 +0100 ++++ epdfview-0.1.8/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); |