summaryrefslogtreecommitdiff
path: root/x11/xfishtank
diff options
context:
space:
mode:
Diffstat (limited to 'x11/xfishtank')
-rw-r--r--x11/xfishtank/Makefile22
-rw-r--r--x11/xfishtank/files/md51
-rw-r--r--x11/xfishtank/patches/patch-aa395
-rw-r--r--x11/xfishtank/patches/patch-ab11
-rw-r--r--x11/xfishtank/pkg/COMMENT1
-rw-r--r--x11/xfishtank/pkg/DESCR8
-rw-r--r--x11/xfishtank/pkg/PLIST1
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