summaryrefslogtreecommitdiff
path: root/graphics/gimp/patches/patch-ac
blob: cf388eb9eab8a0fc44fc4267be7e16e13514a23d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
$NetBSD: patch-ac,v 1.14 2007/05/26 15:00:23 tron Exp $

--- plug-ins/common/sunras.c.orig	2007-04-17 22:11:23.000000000 +0100
+++ plug-ins/common/sunras.c	2007-05-26 15:40:09.000000000 +0100
@@ -102,8 +102,7 @@
                           gint32            image_ID,
                           gint32            drawable_ID);
 
-static void set_color_table (gint32, L_SUNFILEHEADER *, unsigned char *);
-
+static void   set_color_table  (gint32, L_SUNFILEHEADER *, const guchar *);
 static gint32 create_new_image (const gchar   *filename,
                                 guint          width,
                                 guint          height,
@@ -865,19 +864,20 @@
 static void
 set_color_table (gint32           image_ID,
 		 L_SUNFILEHEADER *sunhdr,
-		 guchar          *suncolmap)
+		 const guchar    *suncolmap)
 {
-  int ncols, j;
-  guchar ColorMap[256*3];
+  guchar ColorMap[256 * 3];
+  gint   ncols, j;
 
   ncols = sunhdr->l_ras_maplength / 3;
-  if (ncols <= 0) return;
+  if (ncols <= 0)
+    return;
 
-  for (j = 0; j < ncols; j++)
+  for (j = 0; j < MIN (ncols, 256); j++)
     {
-      ColorMap[j*3]   = suncolmap[j];
-      ColorMap[j*3+1] = suncolmap[j+ncols];
-      ColorMap[j*3+2] = suncolmap[j+2*ncols];
+      ColorMap[j * 3 + 0] = suncolmap[j];
+      ColorMap[j * 3 + 1] = suncolmap[j + ncols];
+      ColorMap[j * 3 + 2] = suncolmap[j + 2 * ncols];
     }
 
 #ifdef DEBUG
@@ -886,6 +886,7 @@
     printf ("%3d: 0x%02x 0x%02x 0x%02x\n", j,
 	    ColorMap[j*3], ColorMap[j*3+1], ColorMap[j*3+2]);
 #endif
+
   gimp_image_set_colormap (image_ID, ColorMap, ncols);
 }