This patch is for zimg-4.19.1, fixes: 1) dump-colormap with default map yield inverted order map. (color.c) 2) crash with muilti-column option when numbers of data columns exceed specified size (x*y). (read.c) --- zimg-4.19.1.orig/color.c Sat Sep 28 01:00:22 2002 +++ zimg-4.19.1/color.c Wed May 7 16:29:46 2003 @@ -213,39 +213,40 @@ fprintf(stderr, "(getGdColorMap) len3 = %d\n", len3); fprintf(stderr, "(getGdColorMap) len4 = %d\n", len4); #endif - for (j = ZIMG_MAP_COLORS - 1, i = 0; i < len1; i++, j--) { + + for (j = 0, i = len - 1; i >= len4; i--, j++) { gdcolor[j] = allocColor(im, - ((int)((double)0xff))^R, - ((int)((double)0xff * (double)i / (double)len1))^G, - ((int)((double)0x00))^B); + ((int)((double)0xff * (double)(i - len4) / (double)len1))^R, + ((int)((double)0x00))^G, + ((int)((double)0xff))^B); } - for (; i < len2; i++, j--) { + for (; i >= len3; i--, j++) { gdcolor[j] = allocColor(im, - ((int)((double)0xff * (double)(len2 - i) / (double)len1))^R, - ((int)((double)0xff))^G, - ((int)((double)0x00))^B); + ((int)((double)0x00))^R, + ((int)((double)0xff * (double)(len4 - i) / (double)len1))^G, + ((int)((double)0xff))^B); } - for (; i < len3; i++, j--) { + for (; i >= len2; i--, j++) { gdcolor[j] = allocColor(im, ((int)((double)0x00))^R, ((int)((double)0xff))^G, ((int)((double)0xff * (double)(i - len2) / (double)len1))^B); } - for (; i < len4; i++, j--) { + for (; i >= len1; i--, j++) { gdcolor[j] = allocColor(im, - ((int)((double)0x00))^R, - ((int)((double)0xff * (double)(len4 - i) / (double)len1))^G, - ((int)((double)0xff))^B); + ((int)((double)0xff * (double)(len2 - i) / (double)len1))^R, + ((int)((double)0xff))^G, + ((int)((double)0x00))^B); } - for (; i < len; i++, j--) { + for (; i >= 0; i--, j++) { gdcolor[j] = allocColor(im, - ((int)((double)0xff * (double)(i - len4) / (double)len1))^R, - ((int)((double)0x00))^G, - ((int)((double)0xff))^B); + ((int)((double)0xff))^R, + ((int)((double)0xff * (double)i / (double)len1))^G, + ((int)((double)0x00))^B); } } diff -ru zimg-4.19.1.orig/read.c zimg-4.19.1/read.c --- zimg-4.19.1.orig/read.c Wed Jul 3 04:02:11 2002 +++ zimg-4.19.1/read.c Wed May 7 10:46:03 2003 @@ -115,7 +115,7 @@ } if (z->column == ALL_COLUMNS) { /* read **all** available columns */ - for (i = 0; i < nargs; i++) { + for (i = 0; i < nargs && no < z->data.len; i++) { if (sscanf (args[i], "%f", data + no) == 1) no ++; @@ -123,7 +123,7 @@ } else if (z->column != 1) { - for (col = column; -1 != *col; col++) { + for (col = column; -1 != *col && no < z->data.len; col++) { if (*col < nargs && (sscanf (args[*col], "%f", data + no) == 1)) { no++; } else {