patches/gtk+-16-check-cups.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 17493 a477af32b931
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17493
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     1
diff -urN gtk+-2.18.5/modules/printbackends/papi/gtkprintbackendpapi.c ../../SUNWgtk2-2.18.5.hacked/i386/gtk+-2.18.5/modules/printbackends/papi/gtkprintbackendpapi.c
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     2
--- gtk+-2.18.5/modules/printbackends/papi/gtkprintbackendpapi.c	2010-01-29 10:17:03.373625542 +0000
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     3
+++ ../../SUNWgtk2-2.18.5.hacked/i386/gtk+-2.18.5/modules/printbackends/papi/gtkprintbackendpapi.c	2010-01-29 10:20:00.173396452 +0000
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     4
@@ -26,6 +26,7 @@
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     5
 #include <fcntl.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     6
 #include <stdlib.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     7
 #include <string.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     8
+#include <libscf.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
     9
 #include <papi.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    10
 
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    11
 #include <config.h>
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    12
@@ -124,6 +125,33 @@
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    13
                                                         &print_backend_papi_info, 0);
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    14
 }
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    15
 
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    16
+/*
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    17
+ * Test to see if CUPS is the "active" print service on Solaris by looking for
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    18
+ * a special "general/active" boolean property in the CUPS service instance
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    19
+ * svc:/application/cups/scheduler:default.  If it exists and is true, CUPS
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    20
+ * is the active print service.
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    21
+ */
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    22
+static int
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    23
+cups_is_active()
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    24
+{
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    25
+  int active = 0;
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    26
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    27
+  scf_simple_prop_t *prop = scf_simple_prop_get(NULL,
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    28
+                                   "svc:/application/cups/scheduler:default",
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    29
+                                   "general", "active");
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    30
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    31
+  if ((prop != NULL) && (scf_simple_prop_numvalues(prop) > 0)) {
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    32
+      uint8_t *value = scf_simple_prop_next_boolean(prop);
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    33
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    34
+      if (value != NULL)
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    35
+          active = *value;
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    36
+    }
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    37
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    38
+  scf_simple_prop_free(prop);
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    39
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    40
+  return (active);
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    41
+}
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    42
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    43
 G_MODULE_EXPORT void 
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    44
 pb_module_init (GTypeModule *module)
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    45
 {
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    46
@@ -142,6 +170,9 @@
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    47
 {
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    48
   static gboolean loaded = FALSE;
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    49
 
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    50
+  if (cups_is_active ())
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    51
+    return NULL;
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    52
+
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    53
   if (!loaded)
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    54
   {
a477af32b931 2010-02-02 Ghee Teo <[email protected]>
gheet
parents:
diff changeset
    55
     GModule *papi;