123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- 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);
|