<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3701cdea803a921996f5fca4f15132d5647b9745">https://github.com/macports/macports-ports/commit/3701cdea803a921996f5fca4f15132d5647b9745</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3701cde  libgnomecups: fix build on MacOS 10.15
</span>3701cde is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3701cdea803a921996f5fca4f15132d5647b9745
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Wed Dec 25 13:25:48 2019 -0700

<span style='display:block; white-space:pre;color:#404040;'>    libgnomecups: fix build on MacOS 10.15
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The workaround of setting _IPP_PRIVATE_STRUCTURES no longer works.
</span><span style='display:block; white-space:pre;color:#404040;'>    Take fix from Gentoo Linux.
</span><span style='display:block; white-space:pre;color:#404040;'>    See https://gitweb.gentoo.org/repo/gentoo.git/tree/net-print/libgnomecups/libgnomecups-0.2.3-r5.ebuild
</span>---
 gnome/libgnomecups/Portfile              |   6 +-
 gnome/libgnomecups/files/patch-cups.diff | 285 +++++++++++++++++++++++++++++++
 2 files changed, 289 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/libgnomecups/Portfile b/gnome/libgnomecups/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 66aec61..a9ffaa2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/libgnomecups/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/libgnomecups/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,6 +36,10 @@ depends_lib     path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span> 
 patchfiles      patch-glib-2.32.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/net-print/libgnomecups/libgnomecups-0.2.3-r5.ebuild
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                patch-cups.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # reconfigure using upstream autogen.sh for intltool 0.51 compatibility
 
 configure.cmd   ./autogen.sh
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,8 +47,6 @@ configure.cmd   ./autogen.sh
</span> configure.args  --mandir=${prefix}/share/man \
                 --enable-compile-warnings=minimum
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cppflags-append -D_IPP_PRIVATE_STRUCTURES=1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> platform darwin 8 {
     patchfiles-append       patch-libgnomecups-gnome-cups-request.c.diff
 }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/libgnomecups/files/patch-cups.diff b/gnome/libgnomecups/files/patch-cups.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..f01fa4e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/libgnomecups/files/patch-cups.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,285 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From ae783efde4fa69578651994505462f02b8639220 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Alexandre Rostovtsev <tetromino@gentoo.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 7 Aug 2012 06:53:09 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CUPS 1.6 makes various structures private and introduces these ippGet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and ippSet functions for all of the fields in these structures.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+http://www.cups.org/str.php?L3928
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+We define our own accessors when building against CUPS < 1.6.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Based on work by Jiri Popelka <jpopelka@redhat.com> at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://bugzilla.gnome.org/show_bug.cgi?id=679759
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgnomecups/gnome-cups-printer.c |   48 +++++++++++++++++++++++++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgnomecups/gnome-cups-queue.c   |   43 +++++++++++++++++++++++++++------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgnomecups/gnome-cups-request.c |   44 ++++++++++++++++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 110 insertions(+), 25 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/libgnomecups/gnome-cups-printer.c b/libgnomecups/gnome-cups-printer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c924af0..f5e1ef7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgnomecups/gnome-cups-printer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgnomecups/gnome-cups-printer.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UPDATE_TIMEOUT 5000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define HAVE_CUPS_1_6 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HAVE_CUPS_1_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetCount(attr)     attr->num_values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetName(attr)      attr->name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetInteger(attr, element) attr->values[element].integer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetString(attr, element, language) attr->values[element].string.text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippFirstAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->attrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippNextAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp || !ipp->current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->current->next);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct _GnomeCupsPPDFile {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char name[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -173,9 +201,9 @@ map_reasons (GnomeCupsPrinter *printer,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   printer->details->state_reasons = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* cf. RFC2911 4.4.12 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for (i = 0; i < attr->num_values; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (i = 0; i < ippGetCount (attr); i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           const char *p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          const char *keyword = attr->values [i].string.text;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const char *keyword = ippGetString (attr, i, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           reason = g_new (GnomeCupsPrinterReason, 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -224,8 +252,8 @@ gnome_cups_printer_get_info (GnomeCupsPrinter *printer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return printer->details->info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if ((v) != attr->values[0].integer) { changed = TRUE; } (v) = attr->values[0].integer; }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if (!v || strcmp (v, attr->values[0].string.text)) { g_free (v); changed = TRUE; (v) = g_strdup (attr->values[0].string.text); }}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if ((v) != ippGetInteger (attr, 0)) { changed = TRUE; } (v) = ippGetInteger (attr, 0); }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if (!v || strcmp (v, ippGetString (attr, 0, NULL))) { g_free (v); changed = TRUE; (v) = g_strdup (ippGetString (attr, 0, NULL)); }}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ attributes_update_cb (guint id,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,14 +271,14 @@ attributes_update_cb (guint id,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   changed = FALSE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!error && response) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          for (attr = response->attrs; attr != NULL; attr = attr->next) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (!attr->name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (!ippGetName (attr)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   } 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !strcmp (attr->name, "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !strcmp (ippGetName (attr), "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (!g_ascii_strcasecmp (attr->name, "printer-state-reasons")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (!g_ascii_strcasecmp (ippGetName (attr), "printer-state-reasons")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           map_reasons (printer, attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   MAP_INT (printer->details->state, "printer-state");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -566,7 +594,7 @@ get_default (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (attr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          name = g_strdup (attr->values[0].string.text);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          name = g_strdup (ippGetString (attr, 0, NULL));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           name = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -694,7 +722,7 @@ get_printer_names (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   while (attr) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ret = g_list_prepend (ret, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                g_strdup (attr->values[0].string.text));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                g_strdup (ippGetString (attr, 0, NULL)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           attr = ippFindNextAttribute (response, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                        "printer-name", 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/libgnomecups/gnome-cups-queue.c b/libgnomecups/gnome-cups-queue.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9f98ed9..298db42 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgnomecups/gnome-cups-queue.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgnomecups/gnome-cups-queue.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,6 +15,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UPDATE_TIMEOUT 3000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define HAVE_CUPS_1_6 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HAVE_CUPS_1_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetName(attr)      attr->name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetInteger(attr, element) attr->values[element].integer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetString(attr, element, language) attr->values[element].string.text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippFirstAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->attrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippNextAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp || !ipp->current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->current->next);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct _GnomeCupsQueueDetails {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char *queue_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GList *jobs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -199,8 +226,8 @@ finish_job (GnomeCupsJob *job)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   job->size = job->size * 1024;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (attr->values[0].string.text);}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { (dest) = attr->values[0].integer; } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (ippGetString (attr, 0, NULL));}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { (dest) = ippGetInteger (attr, 0); } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_jobs_cb (guint id,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -231,8 +258,8 @@ get_jobs_cb (guint id,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (response) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           job = g_new0 (GnomeCupsJob, 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          for (attr = response->attrs; attr != NULL; attr = attr->next) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (attr->name == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (ippGetName (attr) == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (job->name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   finish_job (job);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   jobs = g_list_prepend (jobs, job);      
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -244,7 +271,7 @@ get_jobs_cb (guint id,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -355,8 +382,8 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (response) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           job = g_new0 (GnomeCupsJob, 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          for (attr = response->attrs; attr != NULL; attr = attr->next) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (attr->name == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (ippGetName (attr) == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (job->name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   finish_job (job);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -366,7 +393,7 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/libgnomecups/gnome-cups-request.c b/libgnomecups/gnome-cups-request.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c94f623..13f0948 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgnomecups/gnome-cups-request.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgnomecups/gnome-cups-request.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define STOP_UNUSED_THREADS_TIMEOUT 60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CLOSE_UNUSED_CONNECTIONS_TIMEOUT 30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define HAVE_CUPS_1_6 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HAVE_CUPS_1_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetCount(attr)     attr->num_values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetValueTag(attr)  attr->value_tag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetName(attr)      attr->name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetBoolean(attr, element) attr->values[element].boolean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetInteger(attr, element) attr->values[element].integer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ippGetString(attr, element, language) attr->values[element].string.text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippFirstAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->attrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static ipp_attribute_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ippNextAttribute(ipp_t *ipp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ipp || !ipp->current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return (ipp->current = ipp->current->next);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GMutex *mutex;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -276,14 +306,14 @@ dump_request (ipp_t const *req)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsigned i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ipp_attribute_t *attr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for (attr = req->attrs; attr != NULL; attr = attr->next) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          g_print ("%s", attr->name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          for (i = 0 ; i < attr->num_values ; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (attr = ippFirstAttribute (req); attr != NULL; attr = ippNextAttribute (req)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          g_print ("%s", ippGetName (attr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          for (i = 0 ; i < ippGetCount (attr) ; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   g_print ("\t[%d] = ", i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  switch (attr->value_tag & ~IPP_TAG_COPY) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  switch (ippGetValueTag (attr) & ~IPP_TAG_COPY) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_INTEGER:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_ENUM:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          g_print ("%d\n", attr->values[i].integer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          g_print ("%d\n", ippGetInteger (attr, i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -294,11 +324,11 @@ dump_request (ipp_t const *req)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_CHARSET:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_LANGUAGE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_MIMETYPE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          g_print ("'%s'\n", attr->values[i].string.text);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          g_print ("'%s'\n", ippGetString (attr, i, NULL));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   case IPP_TAG_BOOLEAN:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          g_print ("%s\n", (int)attr->values[i].boolean ? "true" : "false");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          g_print ("%s\n", (int)ippGetBoolean (attr, i) ? "true" : "false");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+1.7.8.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>