diff options
author | agc <agc> | 1997-10-09 12:23:52 +0000 |
---|---|---|
committer | agc <agc> | 1997-10-09 12:23:52 +0000 |
commit | 48104841cf07824c95428eda45092d9c10387205 (patch) | |
tree | bcff468151f460ca981eb1d4e3582962fc40b671 /x11/xfishtank | |
parent | fa8587b8b088521797472aecbbac186c770ebf30 (diff) | |
download | pkgsrc-48104841cf07824c95428eda45092d9c10387205.tar.gz |
Test for 4.4-lite derived BSD variants correctly.
Diffstat (limited to 'x11/xfishtank')
-rw-r--r-- | x11/xfishtank/patches/patch-aa | 724 |
1 files changed, 329 insertions, 395 deletions
diff --git a/x11/xfishtank/patches/patch-aa b/x11/xfishtank/patches/patch-aa index 6dfc69d767f..569c0767965 100644 --- a/x11/xfishtank/patches/patch-aa +++ b/x11/xfishtank/patches/patch-aa @@ -1,395 +1,329 @@ -*** xfish.c.orig Thu Dec 17 21:26:17 1992 ---- xfish.c Mon Aug 11 20:57:05 1997 -*************** -*** 11,16 **** ---- 11,18 ---- - - * Ported to monocrome by Jonathan Greenblatt (jonnyg@rover.umd.edu) - -+ * 05/02/1996 Added TrueColor support by TJ Phan (phan@aur.alcatel.com) -+ - TODO: - - Parameter parsing needs to be redone. -*************** -*** 46,58 **** - - /* constants are based on rand(3C) returning an integer between 0 and 32767 */ - -! #if defined(ultrix) || defined(sun) || defined(linux) - #define RAND_I_1_16 134217728 - #define RAND_F_1_8 268435455.875 - #define RAND_I_1_4 536870911 - #define RAND_I_1_2 1073741823 - #define RAND_I_3_4 1610612735 - #define RAND_F_MAX 2147483647.0 - #else - #define RAND_I_1_16 2048 - #define RAND_F_1_8 4096.0 ---- 48,71 ---- - - /* constants are based on rand(3C) returning an integer between 0 and 32767 */ - -! #if defined(ultrix) || defined(sun) - #define RAND_I_1_16 134217728 - #define RAND_F_1_8 268435455.875 - #define RAND_I_1_4 536870911 - #define RAND_I_1_2 1073741823 - #define RAND_I_3_4 1610612735 - #define RAND_F_MAX 2147483647.0 -+ #else -+ #if defined(__FreeBSD__) || defined(__OpenBSD__) -+ #include <stdlib.h> -+ #include <unistd.h> -+ -+ #define RAND_I_1_16 (RAND_MAX>>4) -+ #define RAND_F_1_8 ((float)(RAND_MAX>>3)) -+ #define RAND_I_1_4 (RAND_MAX>>2) -+ #define RAND_I_1_2 (RAND_MAX>>1) -+ #define RAND_I_3_4 ((RAND_MAX>>2)*3) -+ #define RAND_F_MAX ((float)RAND_MAX) - #else - #define RAND_I_1_16 2048 - #define RAND_F_1_8 4096.0 -*************** -*** 61,67 **** - #define RAND_I_3_4 24575 - #define RAND_F_MAX 32767.0 - #endif -! - - extern unsigned char *ReadBitmap(); - ---- 74,80 ---- - #define RAND_I_3_4 24575 - #define RAND_F_MAX 32767.0 - #endif -! #endif - - extern unsigned char *ReadBitmap(); - -*************** -*** 850,855 **** ---- 863,872 ---- - * Find the closest color by allocating it, or picking an already allocated - * color - */ -+ Visual (*visual_info) = NULL; -+ int r_mask, g_mask, b_mask; -+ int r_shift=0, g_shift=0, b_shift=0; -+ int r_bits=0, g_bits=0, b_bits=0; - void - FindColor(Dpy, colormap, colr) - Display *Dpy; -*************** -*** 862,867 **** ---- 879,936 ---- - XColor def_colrs[256]; - int NumCells; - -+ if( visual_info == NULL && DefaultDepth(Dpy, DefaultScreen(Dpy)) >= 16 ) -+ { -+ visual_info = DefaultVisual(Dpy, DefaultScreen(Dpy)); -+ r_mask = visual_info->red_mask; -+ while( !(r_mask & 1) ) -+ { -+ r_mask >>= 1; -+ r_shift++; -+ } -+ while( r_mask & 1 ) -+ { -+ r_mask >>= 1; -+ r_bits++; -+ } -+ -+ g_mask = visual_info->green_mask; -+ while( !(g_mask & 1) ) -+ { -+ g_mask >>= 1; -+ g_shift++; -+ } -+ while( g_mask & 1 ) -+ { -+ g_mask >>= 1; -+ g_bits++; -+ } -+ -+ b_mask = visual_info->blue_mask; -+ while( !(b_mask &1) ) -+ { -+ b_mask >>= 1; -+ b_shift++; -+ } -+ while( b_mask & 1 ) -+ { -+ b_mask >>= 1; -+ b_bits++; -+ } -+ } -+ -+ if( DefaultDepth(Dpy, DefaultScreen(Dpy)) > 8 ) -+ { -+ colr->red >>= 16 - r_bits; -+ colr->green >>= 16 - g_bits; -+ colr->blue >>= 16 - b_bits; -+ -+ colr->pixel = ((colr->red << r_shift) & visual_info->red_mask) | -+ ((colr->green << g_shift) & visual_info->green_mask) | -+ ((colr->blue << b_shift) & visual_info->blue_mask); -+ return; -+ } -+ - if (AllocCnt < climit) - { - match = XAllocColor(Dpy, colormap, colr); -*************** -*** 982,988 **** - XColor hdef, edef; - struct colr_data *cdp; - struct colr_data colrs[256]; -- extern char *malloc(); - - colormap = XDefaultColormap(Dpy, screen); - ---- 1051,1056 ---- -*************** -*** 1151,1156 **** ---- 1219,1225 ---- - fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth); - exit(1); - } -+ - if (BitmapBitOrder(Dpy) == LSBFirst) - { - shiftstart = 0; -*************** -*** 1194,1200 **** - } - } - } -! bytesperline = (width + linepad) * depth / 8; - newimage = XCreateImage(Dpy, DefaultVisual(Dpy, screen), depth, - ZPixmap, 0, (char *)bit_data, - (width + linepad), height, 8, bytesperline); ---- 1263,1270 ---- - } - } - } -! -! bytesperline = (width * depth / 8 + linepad); - newimage = XCreateImage(Dpy, DefaultVisual(Dpy, screen), depth, - ZPixmap, 0, (char *)bit_data, - (width + linepad), height, 8, bytesperline); -*************** -*** 1218,1224 **** - unsigned char *data; - register int i, j, k; - int cnt, wcnt; -- extern char *malloc(); - - cnt = 1; - cnt += Pcnt; ---- 1288,1293 ---- -*************** -*** 1341,1349 **** ---- 1410,1423 ---- - free((char *)data); - } - -+ if( DisplayPlanes(Dpy, screen) < 8 ) -+ { -+ - j = rwidth[k] * rheight[k]; - x1A = (caddrt) malloc(rwidth[k] * rheight[k]); - p = (caddrt) xfishRasterA[k]; -+ -+ - q = x1A; - for (i = 0; i < j; i++) - { -*************** -*** 1389,1394 **** ---- 1463,1529 ---- - xfishB[k][2] = MakeImage(x1B, rwidth[k], rheight[k]); - xfishB[k][1] = MakeImage(x2B, rwidth[k], rheight[k]); - -+ free((char *)x1A); -+ free((char *)x2A); -+ free((char *)x1B); -+ free((char *)x2B); -+ -+ } -+ else -+ { -+ i = DisplayPlanes(Dpy, screen); -+ -+ xfishA[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); -+ -+ p = (caddrt) xfishRasterA[k]; -+ -+ for (j = 0; j < rheight[k]; j++) -+ { -+ for( i = 0; i < rwidth[k]; i++ ) -+ { -+ XPutPixel(xfishA[k][2], i, j, cmap[cnt + (int)(*p)]); -+ p++; -+ } -+ } -+ -+ xfishB[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); -+ -+ p = (caddrt) xfishRasterB[k]; -+ -+ for (j = 0; j < rheight[k]; j++) -+ { -+ for( i = 0; i < rwidth[k]; i++ ) -+ { -+ XPutPixel(xfishB[k][2], i, j, cmap[cnt + (int)(*p)]); -+ p++; -+ } -+ } -+ -+ xfishA[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); -+ -+ for (j = 0; j < rheight[k]; j++) -+ { -+ for( i = 0; i < rwidth[k]; i++ ) -+ { -+ XPutPixel(xfishA[k][1], i, j, -+ XGetPixel(xfishA[k][2], rwidth[k] - i -1, j)); -+ } -+ } -+ -+ xfishB[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); -+ -+ for (j = 0; j < rheight[k]; j++) -+ { -+ for( i = 0; i < rwidth[k]; i++ ) -+ { -+ XPutPixel(xfishB[k][1], i, j, -+ XGetPixel(xfishB[k][2], rwidth[k] - i - 1, j)); -+ } -+ } -+ -+ } -+ -+ - i = DisplayPlanes(Dpy, screen); - - pfishA[k][1] = XCreatePixmap(Dpy, wid, -*************** -*** 1400,1410 **** - pfishB[k][2] = XCreatePixmap(Dpy, wid, - rwidth[k], rheight[k], i); - -- free((char *)x1A); -- free((char *)x2A); -- free((char *)x1B); -- free((char *)x2B); -- - if (pfishA[k][1]) - { - XPutImage(Dpy, pfishA[k][1], gc, xfishA[k][1], 0, 0, ---- 1535,1540 ---- -*************** -*** 1465,1498 **** - void - init_signals() - { -- int ret; -- #ifdef linux -- signal(SIGUSR1, toggle_secure); -- #else -- #if defined(MOTOROLA) || defined(SCO) -- sigset(SIGUSR1, toggle_secure); -- #else -- struct sigvec vec; -- -- vec.sv_handler = toggle_secure; -- vec.sv_mask = 0; -- vec.sv_onstack = 0; -- -- #ifndef hpux -- ret = sigvec(SIGUSR1, &vec, &vec); -- if (ret != 0) -- { -- fprintf(stderr, "sigvec call failed\n"); -- } -- else -- { -- fprintf(stderr, "sigvec call OK\n"); -- } -- #else -- sigvector(SIGUSR1, &vec, &vec); -- #endif -- #endif /* MOTOROLA */ -- #endif /* LINUX */ - } - - ---- 1595,1600 ---- -*************** -*** 1505,1511 **** - XWindowAttributes winfo; - XSetWindowAttributes attr; - XGCValues vals; -- extern char *malloc(); - XSizeHints xsh; - XImage *pimage; - int i, size, cnt; ---- 1607,1612 ---- -*************** -*** 1613,1625 **** - xsh.height = height; - XSetNormalHints(Dpy, wid, &xsh); - - if (picname[0] != '\0') - { - XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight); - XSetWindowBackgroundPixmap(Dpy, wid, PicMap); - } -- -- XMapWindow(Dpy, wid); - } - - binfo = (bubble *) malloc(blimit * sizeof(bubble)); ---- 1714,1725 ---- - xsh.height = height; - XSetNormalHints(Dpy, wid, &xsh); - -+ XMapWindow(Dpy, wid); - if (picname[0] != '\0') - { - XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight); - XSetWindowBackgroundPixmap(Dpy, wid, PicMap); - } - } - - binfo = (bubble *) malloc(blimit * sizeof(bubble)); -*************** -*** 1965,1973 **** - high_res_sleep(seconds) - double seconds; - { - int fds = 0; - struct timeval timeout; -! - timeout.tv_sec = seconds; - timeout.tv_usec = (seconds - timeout.tv_sec) * 1000000.0; - select(0, &fds, &fds, &fds, &timeout); ---- 2065,2079 ---- - high_res_sleep(seconds) - double seconds; - { -+ #ifndef __FreeBSD__ - int fds = 0; -+ #endif - struct timeval timeout; -! #ifdef __FreeBSD__ -! fd_set fds; -! FD_ZERO(&fds); -! #endif -! - timeout.tv_sec = seconds; - timeout.tv_usec = (seconds - timeout.tv_sec) * 1000000.0; - select(0, &fds, &fds, &fds, &timeout); +--- xfish.c.orig Thu Dec 17 21:26:17 1992 ++++ xfish.c Thu Oct 9 13:05:19 1997 +@@ -11,6 +11,8 @@ + + * Ported to monocrome by Jonathan Greenblatt (jonnyg@rover.umd.edu) + ++ * 05/02/1996 Added TrueColor support by TJ Phan (phan@aur.alcatel.com) ++ + TODO: + + Parameter parsing needs to be redone. +@@ -31,6 +33,8 @@ + #include <time.h> + #endif + ++#include <sys/param.h> ++ + #include <stdio.h> + #ifdef sgi + #define _BSD_SIGNALS +@@ -46,13 +50,24 @@ + + /* constants are based on rand(3C) returning an integer between 0 and 32767 */ + +-#if defined(ultrix) || defined(sun) || defined(linux) ++#if defined(ultrix) || defined(sun) + #define RAND_I_1_16 134217728 + #define RAND_F_1_8 268435455.875 + #define RAND_I_1_4 536870911 + #define RAND_I_1_2 1073741823 + #define RAND_I_3_4 1610612735 + #define RAND_F_MAX 2147483647.0 ++#else ++#if (defined(BSD) && BSD >= 199306) ++#include <stdlib.h> ++#include <unistd.h> ++ ++#define RAND_I_1_16 (RAND_MAX>>4) ++#define RAND_F_1_8 ((float)(RAND_MAX>>3)) ++#define RAND_I_1_4 (RAND_MAX>>2) ++#define RAND_I_1_2 (RAND_MAX>>1) ++#define RAND_I_3_4 ((RAND_MAX>>2)*3) ++#define RAND_F_MAX ((float)RAND_MAX) + #else + #define RAND_I_1_16 2048 + #define RAND_F_1_8 4096.0 +@@ -61,7 +76,7 @@ + #define RAND_I_3_4 24575 + #define RAND_F_MAX 32767.0 + #endif +- ++#endif + + extern unsigned char *ReadBitmap(); + +@@ -850,6 +865,10 @@ + * Find the closest color by allocating it, or picking an already allocated + * color + */ ++Visual (*visual_info) = NULL; ++int r_mask, g_mask, b_mask; ++int r_shift=0, g_shift=0, b_shift=0; ++int r_bits=0, g_bits=0, b_bits=0; + void + FindColor(Dpy, colormap, colr) + Display *Dpy; +@@ -862,6 +881,58 @@ + XColor def_colrs[256]; + int NumCells; + ++ if( visual_info == NULL && DefaultDepth(Dpy, DefaultScreen(Dpy)) >= 16 ) ++ { ++ visual_info = DefaultVisual(Dpy, DefaultScreen(Dpy)); ++ r_mask = visual_info->red_mask; ++ while( !(r_mask & 1) ) ++ { ++ r_mask >>= 1; ++ r_shift++; ++ } ++ while( r_mask & 1 ) ++ { ++ r_mask >>= 1; ++ r_bits++; ++ } ++ ++ g_mask = visual_info->green_mask; ++ while( !(g_mask & 1) ) ++ { ++ g_mask >>= 1; ++ g_shift++; ++ } ++ while( g_mask & 1 ) ++ { ++ g_mask >>= 1; ++ g_bits++; ++ } ++ ++ b_mask = visual_info->blue_mask; ++ while( !(b_mask &1) ) ++ { ++ b_mask >>= 1; ++ b_shift++; ++ } ++ while( b_mask & 1 ) ++ { ++ b_mask >>= 1; ++ b_bits++; ++ } ++ } ++ ++ if( DefaultDepth(Dpy, DefaultScreen(Dpy)) > 8 ) ++ { ++ colr->red >>= 16 - r_bits; ++ colr->green >>= 16 - g_bits; ++ colr->blue >>= 16 - b_bits; ++ ++ colr->pixel = ((colr->red << r_shift) & visual_info->red_mask) | ++ ((colr->green << g_shift) & visual_info->green_mask) | ++ ((colr->blue << b_shift) & visual_info->blue_mask); ++ return; ++ } ++ + if (AllocCnt < climit) + { + match = XAllocColor(Dpy, colormap, colr); +@@ -982,7 +1053,6 @@ + XColor hdef, edef; + struct colr_data *cdp; + struct colr_data colrs[256]; +- extern char *malloc(); + + colormap = XDefaultColormap(Dpy, screen); + +@@ -1151,6 +1221,7 @@ + fprintf(stderr, "Don't know how to format image for display of depth %d\n", depth); + exit(1); + } ++ + if (BitmapBitOrder(Dpy) == LSBFirst) + { + shiftstart = 0; +@@ -1194,7 +1265,8 @@ + } + } + } +- bytesperline = (width + linepad) * depth / 8; ++ ++ bytesperline = (width * depth / 8 + linepad); + newimage = XCreateImage(Dpy, DefaultVisual(Dpy, screen), depth, + ZPixmap, 0, (char *)bit_data, + (width + linepad), height, 8, bytesperline); +@@ -1218,7 +1290,6 @@ + unsigned char *data; + register int i, j, k; + int cnt, wcnt; +- extern char *malloc(); + + cnt = 1; + cnt += Pcnt; +@@ -1341,9 +1412,14 @@ + free((char *)data); + } + ++ if( DisplayPlanes(Dpy, screen) < 8 ) ++ { ++ + j = rwidth[k] * rheight[k]; + x1A = (caddrt) malloc(rwidth[k] * rheight[k]); + p = (caddrt) xfishRasterA[k]; ++ ++ + q = x1A; + for (i = 0; i < j; i++) + { +@@ -1389,6 +1465,67 @@ + xfishB[k][2] = MakeImage(x1B, rwidth[k], rheight[k]); + xfishB[k][1] = MakeImage(x2B, rwidth[k], rheight[k]); + ++ free((char *)x1A); ++ free((char *)x2A); ++ free((char *)x1B); ++ free((char *)x2B); ++ ++ } ++ else ++ { ++ i = DisplayPlanes(Dpy, screen); ++ ++ xfishA[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ p = (caddrt) xfishRasterA[k]; ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishA[k][2], i, j, cmap[cnt + (int)(*p)]); ++ p++; ++ } ++ } ++ ++ xfishB[k][2] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ p = (caddrt) xfishRasterB[k]; ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishB[k][2], i, j, cmap[cnt + (int)(*p)]); ++ p++; ++ } ++ } ++ ++ xfishA[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishA[k][1], i, j, ++ XGetPixel(xfishA[k][2], rwidth[k] - i -1, j)); ++ } ++ } ++ ++ xfishB[k][1] = XGetImage(Dpy, DefaultRootWindow(Dpy), 0, 0, rwidth[k], rheight[k], 0, ZPixmap); ++ ++ for (j = 0; j < rheight[k]; j++) ++ { ++ for( i = 0; i < rwidth[k]; i++ ) ++ { ++ XPutPixel(xfishB[k][1], i, j, ++ XGetPixel(xfishB[k][2], rwidth[k] - i - 1, j)); ++ } ++ } ++ ++ } ++ ++ + i = DisplayPlanes(Dpy, screen); + + pfishA[k][1] = XCreatePixmap(Dpy, wid, +@@ -1400,11 +1537,6 @@ + pfishB[k][2] = XCreatePixmap(Dpy, wid, + rwidth[k], rheight[k], i); + +- free((char *)x1A); +- free((char *)x2A); +- free((char *)x1B); +- free((char *)x2B); +- + if (pfishA[k][1]) + { + XPutImage(Dpy, pfishA[k][1], gc, xfishA[k][1], 0, 0, +@@ -1465,34 +1597,6 @@ + void + init_signals() + { +- int ret; +-#ifdef linux +- signal(SIGUSR1, toggle_secure); +-#else +-#if defined(MOTOROLA) || defined(SCO) +- sigset(SIGUSR1, toggle_secure); +-#else +- struct sigvec vec; +- +- vec.sv_handler = toggle_secure; +- vec.sv_mask = 0; +- vec.sv_onstack = 0; +- +-#ifndef hpux +- ret = sigvec(SIGUSR1, &vec, &vec); +- if (ret != 0) +- { +- fprintf(stderr, "sigvec call failed\n"); +- } +- else +- { +- fprintf(stderr, "sigvec call OK\n"); +- } +-#else +- sigvector(SIGUSR1, &vec, &vec); +-#endif +-#endif /* MOTOROLA */ +-#endif /* LINUX */ + } + + +@@ -1505,7 +1609,6 @@ + XWindowAttributes winfo; + XSetWindowAttributes attr; + XGCValues vals; +- extern char *malloc(); + XSizeHints xsh; + XImage *pimage; + int i, size, cnt; +@@ -1613,13 +1716,12 @@ + xsh.height = height; + XSetNormalHints(Dpy, wid, &xsh); + ++ XMapWindow(Dpy, wid); + if (picname[0] != '\0') + { + XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight); + XSetWindowBackgroundPixmap(Dpy, wid, PicMap); + } +- +- XMapWindow(Dpy, wid); + } + + binfo = (bubble *) malloc(blimit * sizeof(bubble)); +@@ -1965,9 +2067,15 @@ + high_res_sleep(seconds) + double seconds; + { ++#if !(defined(BSD) && BSD >= 199306) + int fds = 0; ++#endif + struct timeval timeout; +- ++#if (defined(BSD) && BSD >= 199306) ++ fd_set fds; ++ FD_ZERO(&fds); ++#endif ++ + timeout.tv_sec = seconds; + timeout.tv_usec = (seconds - timeout.tv_sec) * 1000000.0; + select(0, &fds, &fds, &fds, &timeout); |