summaryrefslogtreecommitdiff
path: root/x11/xfishtank
diff options
context:
space:
mode:
authoragc <agc>1997-10-09 12:23:52 +0000
committeragc <agc>1997-10-09 12:23:52 +0000
commit48104841cf07824c95428eda45092d9c10387205 (patch)
treebcff468151f460ca981eb1d4e3582962fc40b671 /x11/xfishtank
parentfa8587b8b088521797472aecbbac186c770ebf30 (diff)
downloadpkgsrc-48104841cf07824c95428eda45092d9c10387205.tar.gz
Test for 4.4-lite derived BSD variants correctly.
Diffstat (limited to 'x11/xfishtank')
-rw-r--r--x11/xfishtank/patches/patch-aa724
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);