diff options
Diffstat (limited to 'x11/xfishtank')
-rw-r--r-- | x11/xfishtank/Makefile | 22 | ||||
-rw-r--r-- | x11/xfishtank/files/md5 | 1 | ||||
-rw-r--r-- | x11/xfishtank/patches/patch-aa | 395 | ||||
-rw-r--r-- | x11/xfishtank/patches/patch-ab | 11 | ||||
-rw-r--r-- | x11/xfishtank/pkg/COMMENT | 1 | ||||
-rw-r--r-- | x11/xfishtank/pkg/DESCR | 8 | ||||
-rw-r--r-- | x11/xfishtank/pkg/PLIST | 1 |
7 files changed, 439 insertions, 0 deletions
diff --git a/x11/xfishtank/Makefile b/x11/xfishtank/Makefile new file mode 100644 index 00000000000..70fe425d5a9 --- /dev/null +++ b/x11/xfishtank/Makefile @@ -0,0 +1,22 @@ +# New ports collection makefile for: xfishtank +# Version required: 2.2 +# Date created: 24th April 1997 +# Whom: jacs +# +# FreeBSD Id: Makefile,v 1.2 1997/06/17 07:45:12 asami Exp +# + +DISTNAME= xfishtank-2.2 +CATEGORIES= x11 +MASTER_SITES= ftp://ftp.uni-koeln.de/windows/xcontrib/ + +MAINTAINER= jacs@gnome.co.uk + +USE_IMAKE= yes +WRKSRC= ${WRKDIR}/xfishtank2.0 +NO_INSTALL_MANPAGES=yes + +post-patch: + cd ${WRKDIR}/xfishtank2.0; make clean + +.include <bsd.port.mk> diff --git a/x11/xfishtank/files/md5 b/x11/xfishtank/files/md5 new file mode 100644 index 00000000000..d34dba2a128 --- /dev/null +++ b/x11/xfishtank/files/md5 @@ -0,0 +1 @@ +MD5 (xfishtank-2.2.tar.gz) = 9d2d1a004992295d7c9d49f535bae42e diff --git a/x11/xfishtank/patches/patch-aa b/x11/xfishtank/patches/patch-aa new file mode 100644 index 00000000000..6dfc69d767f --- /dev/null +++ b/x11/xfishtank/patches/patch-aa @@ -0,0 +1,395 @@ +*** 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); diff --git a/x11/xfishtank/patches/patch-ab b/x11/xfishtank/patches/patch-ab new file mode 100644 index 00000000000..87ccd1e5b1e --- /dev/null +++ b/x11/xfishtank/patches/patch-ab @@ -0,0 +1,11 @@ +--- Imakefile.orig Wed Dec 16 01:04:35 1992 ++++ Imakefile Tue Jun 17 08:36:51 1997 +@@ -2,7 +2,7 @@ + LOCAL_LIBRARIES = $(XLIB) + DEPLIBS = $(DEPXLIB) + SYS_LIBRARIES = -lm +- CDEBUGFLAGS = -g ++XCOMM CDEBUGFLAGS = -g + + SRCS = xfish.c medcut.c read.c gifread.c + OBJS = xfish.o medcut.o read.o gifread.o diff --git a/x11/xfishtank/pkg/COMMENT b/x11/xfishtank/pkg/COMMENT new file mode 100644 index 00000000000..63a4acabb6b --- /dev/null +++ b/x11/xfishtank/pkg/COMMENT @@ -0,0 +1 @@ +Make fish swim in the background of your screen. diff --git a/x11/xfishtank/pkg/DESCR b/x11/xfishtank/pkg/DESCR new file mode 100644 index 00000000000..f253cb44c07 --- /dev/null +++ b/x11/xfishtank/pkg/DESCR @@ -0,0 +1,8 @@ +There are lots of programs for lots of platforms to make fish swim in the +background of your screen. This is a modification of an old one called +xfish (also called Xaquarium), that I have added more features to. + +This version now works on true colour displays. + +--Chris +jacs@gnome.co.uk diff --git a/x11/xfishtank/pkg/PLIST b/x11/xfishtank/pkg/PLIST new file mode 100644 index 00000000000..793cc679f5f --- /dev/null +++ b/x11/xfishtank/pkg/PLIST @@ -0,0 +1 @@ +bin/xfishtank |