~stefanor/ubuntu/maverick/ghostscript/defoma-removal

« back to all changes in this revision

Viewing changes to debian/patches/gs-cups-rgb-gamma.dpatch

  • Committer: Bazaar Package Importer
  • Author(s): Till Kamppeter
  • Date: 2009-12-07 20:23:23 UTC
  • Revision ID: james.westby@ubuntu.com-20091207202323-8fwsye4y8v3qpxq1
Tags: 8.70.dfsg.1-0ubuntu4
debian/patches/pxl-driver-fixes.dpatch: Several upstream bug fixes
on the PCL-XL drivers ("pxlcolor"/"pxlmono") in Ghostscript, especially
also for PDF input. Thanks to Hin-Tak Leung on putting all that work
into this driver which stayed nearly untouched for around 10 years.
(LP: #361772). 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh /usr/share/dpatch/dpatch-run
 
2
## gs-cups-rgb-gamma.dpatch by  <till.kamppeter@gmail.com>
 
3
##
 
4
## All lines beginning with `## DP:' are a description of the patch.
 
5
## DP: No description.
 
6
 
 
7
@DPATCH@
 
8
diff -urNad ghostscript-8.70.dfsg.1~/cups/gdevcups.c ghostscript-8.70.dfsg.1/cups/gdevcups.c
 
9
--- ghostscript-8.70.dfsg.1~/cups/gdevcups.c    2009-05-21 00:30:48.000000000 +0200
 
10
+++ ghostscript-8.70.dfsg.1/cups/gdevcups.c     2009-12-07 20:21:40.295937509 +0100
 
11
@@ -1071,7 +1071,7 @@
 
12
              frac      k,              /* I - Black value */
 
13
              frac      *out)           /* O - Device colors */
 
14
 {
 
15
-  int  c0, c1, c2;                     /* Temporary color values */
 
16
+  int  c0, c1, c2, c3;                 /* Temporary color values */
 
17
   float        rr, rg, rb,                     /* Real RGB colors */
 
18
        ciex, ciey, ciez,               /* CIE XYZ colors */
 
19
        ciey_yn,                        /* Normalized luminance */
 
20
@@ -1090,44 +1090,56 @@
 
21
   switch (cups->header.cupsColorSpace)
 
22
   {
 
23
     case CUPS_CSPACE_W :
 
24
-        c0 = frac_1 - (c * 31 + m * 61 + y * 8) / 100 - k;
 
25
-
 
26
+        c0 = (c * 31 + m * 61 + y * 8) / 100 + k;
 
27
+       
 
28
        if (c0 < 0)
 
29
-         out[0] = 0;
 
30
+         c0 = 0;
 
31
        else if (c0 > frac_1)
 
32
-         out[0] = (frac)cupsDensity[frac_1];
 
33
-       else
 
34
-         out[0] = (frac)cupsDensity[c0];
 
35
+         c0 = frac_1;
 
36
+       out[0] = frac_1 - (frac)cupsDensity[c0];
 
37
         break;
 
38
 
 
39
     case CUPS_CSPACE_RGBA :
 
40
         out[3] = frac_1;
 
41
 
 
42
     case CUPS_CSPACE_RGB :
 
43
-        c0 = frac_1 - c - k;
 
44
-       c1 = frac_1 - m - k;
 
45
-       c2 = frac_1 - y - k;
 
46
+    case CUPS_CSPACE_RGBW :
 
47
+        if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
 
48
+         c0 = c;
 
49
+         c1 = m;
 
50
+         c2 = y;
 
51
+         c3 = k;
 
52
+       } else {
 
53
+         c0 = c + k;
 
54
+         c1 = m + k;
 
55
+         c2 = y + k;
 
56
+       }
 
57
 
 
58
         if (c0 < 0)
 
59
-         out[0] = 0;
 
60
+         c0 = 0;
 
61
        else if (c0 > frac_1)
 
62
-         out[0] = (frac)cupsDensity[frac_1];
 
63
-       else
 
64
-         out[0] = (frac)cupsDensity[c0];
 
65
+         c0 = frac_1;
 
66
+       out[0] = frac_1 - (frac)cupsDensity[c0];
 
67
 
 
68
         if (c1 < 0)
 
69
-         out[1] = 0;
 
70
+         c1 = 0;
 
71
        else if (c1 > frac_1)
 
72
-         out[1] = (frac)cupsDensity[frac_1];
 
73
-       else
 
74
-         out[1] = (frac)cupsDensity[c1];
 
75
+         c1 = frac_1;
 
76
+       out[1] = frac_1 - (frac)cupsDensity[c1];
 
77
 
 
78
         if (c2 < 0)
 
79
-         out[2] = 0;
 
80
+         c2 = 0;
 
81
        else if (c2 > frac_1)
 
82
-         out[2] = (frac)cupsDensity[frac_1];
 
83
-       else
 
84
-         out[2] = (frac)cupsDensity[c2];
 
85
+         c2 = frac_1;
 
86
+       out[2] = frac_1 - (frac)cupsDensity[c2];
 
87
+
 
88
+        if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
 
89
+         if (c3 < 0)
 
90
+           c3 = 0;
 
91
+         else if (c3 > frac_1)
 
92
+           c3 = frac_1;
 
93
+         out[3] = frac_1 - (frac)cupsDensity[c3];
 
94
+       }
 
95
         break;
 
96
 
 
97
     default :
 
98
@@ -1196,11 +1208,6 @@
 
99
          out[2] = (frac)cupsDensity[c2];
 
100
         break;
 
101
 
 
102
-    case CUPS_CSPACE_RGBW :
 
103
-        c = frac_1 - c;
 
104
-        m = frac_1 - m;
 
105
-        y = frac_1 - y;
 
106
-        k = frac_1 - k;
 
107
     case CUPS_CSPACE_CMYK :
 
108
         if (c < 0)
 
109
          out[0] = 0;