]> iEval git - xfishtank.git/commitdiff
Imported Upstream version 2.5 upstream/2.5
authorMarius Gavrilescu <marius@ieval.ro>
Fri, 9 Aug 2013 13:21:21 +0000 (16:21 +0300)
committerMarius Gavrilescu <marius@ieval.ro>
Fri, 9 Aug 2013 13:21:21 +0000 (16:21 +0300)
Imakefile
README
Version
medcut.h
read.c [deleted file]
xfish.c
xfishtank.1x

index d998e963953e308880ab298e7de00e4c39670c5b..1b89e4948abd878b6b568d738111d8b0e3873348 100644 (file)
--- a/Imakefile
+++ b/Imakefile
@@ -1,11 +1,11 @@
  EXTRA_INCLUDES = -I./fishmaps
 LOCAL_LIBRARIES = $(XLIB)
         DEPLIBS = $(DEPXLIB)
-  SYS_LIBRARIES = -lm
+  SYS_LIBRARIES = -lImlib2 -lm
    MANSRCSUFFIX = 1x
 
-           SRCS = xfish.c medcut.c read.c
-           OBJS = xfish.o medcut.o read.o
+           SRCS = xfish.c medcut.c
+           OBJS = xfish.o medcut.o
 
 ComplexProgramTarget(xfishtank)
 
diff --git a/README b/README
index 707a76fb5a75d7fab3c926eda5d422d7400a9f91..d2ed3a390f6b42a7cb697ad4f5f9b64d9da5760c 100644 (file)
--- a/README
+++ b/README
@@ -14,6 +14,13 @@ along.
 
 Pushed to github Feb 2012 by Jim Rees.
 
+Build and install should go something like this:
+tar xfvz xfishtank.tar.gz (or git clone the repo)
+cd xfishtank
+xmkmf
+make
+sudo make install
+
 Here's the README as I found it.  Also see README.debian for more recent
 history.
 
diff --git a/Version b/Version
index 823ef2b56f3a238c20c9b9d4a09a5fe5d287f64c..b064cce555f66d992bf1144a72bfaf885bc9c8cb 100644 (file)
--- a/Version
+++ b/Version
@@ -1 +1 @@
-xfishtank version 2.3
+xfishtank version 2.5
index 879f59e81829ea1fd2c6b19a6d0861d66f2f58de..97b2c03f1c5488a81ec535604f25d8d6a5cb9a8a 100644 (file)
--- a/medcut.h
+++ b/medcut.h
@@ -3,6 +3,7 @@ struct colr_data {
     int red, green, blue;
 };
 
+extern void MedianInit();
 extern void MedianCount();
 extern void MedianSplit();
 extern void ConvertColor();
diff --git a/read.c b/read.c
deleted file mode 100644 (file)
index f311132..0000000
--- a/read.c
+++ /dev/null
@@ -1,602 +0,0 @@
-#include <X11/Xlib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "compact.h"
-#include "medcut.h"
-
-#define DEF_BLACK       BlackPixel(Dpy, DefaultScreen(Dpy))
-#define DEF_WHITE       WhitePixel(Dpy, DefaultScreen(Dpy))
-#define        MAX_LINE        81
-
-
-extern unsigned char *ReadGifBitmap();
-
-
-extern Display *Dpy;
-
-int NumColors;
-
-char nibMask[8] = {
-    1, 2, 4, 8, 16, 32, 64, 128
-};
-
-
-
-/*
- * dscan is a quick replacement for:
- *
- *    fscanf (fp, "%d", &ip);
- */
-dscan(fp, ip)
-FILE *fp;
-int *ip;
-{
-
-    register int v = 0;
-    register int n = 0;
-    int done = 0;
-    static int nerrors;
-
-    while (!done) {
-       register int i;
-       i = getc(fp);
-       if (i < 0) {
-           *ip = v;
-           fprintf(stderr, "dscanf: EOF");
-           if (nerrors++ > 2)
-               return (-1);
-           else if (nerrors++ > 4)
-               exit(-1);
-           return (n);
-       }
-       i &= 0xFF;
-       switch (i) {
-       case '0':
-       case '1':
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':
-           v = i - '0' + (v * 10);
-           n++;
-           break;
-       case '\n':
-       case '\r':
-       case ' ':
-       case '\t':
-           if (n) {
-               *ip = v;
-               done = 1;
-           }
-           break;
-       default:
-           fprintf(stderr, "dscanf: non numeric character (0x%x) '%c'\n", i, i);
-           if (nerrors++ > 4)
-               exit(-1);
-           return (-1);
-
-       }
-    }
-    return (n);
-}
-
-
-unsigned char *
-ReadXpmPixmap(fp, w, h, colrs, Colors, CharsPP)
-FILE *fp;
-int *w, *h;
-struct colr_data *colrs;
-int Colors, CharsPP;
-{
-    unsigned char *pixels;
-    char **Color_Vals;
-    XColor tmpcolr;
-    int i, j, k;
-    int value, found;
-    char line[BUFSIZ], name_and_type[MAX_LINE];
-    unsigned char *dataP;
-    unsigned char *bitp;
-    int tchar;
-    char *t;
-    char *t2;
-
-    NumColors = 256;
-    if (Colors == 0) {
-       fprintf(stderr, "Can't find Colors.\n");
-       return ((unsigned char *) NULL);
-    }
-    if (*w == 0) {
-       fprintf(stderr, "Invalid width.\n");
-       return ((unsigned char *) NULL);
-    }
-    if (*h == 0) {
-       fprintf(stderr, "Invalid height.\n");
-       return ((unsigned char *) NULL);
-    }
-
-    Color_Vals = (char **) malloc(sizeof(char *) * Colors);
-    for (i = 0; i < Colors; i++) {
-       tchar = getc(fp);
-       while ((tchar != '"') && (tchar != EOF)) {
-           tchar = getc(fp);
-       }
-       Color_Vals[i] = (char *) malloc(sizeof(char) * (CharsPP + 1));
-       j = 0;
-       tchar = getc(fp);
-       while ((tchar != '"') && (tchar != EOF) && (j < CharsPP)) {
-           Color_Vals[i][j] = (char) tchar;
-           tchar = getc(fp);
-           j++;
-       }
-       Color_Vals[i][j] = '\0';
-       if (tchar != '"') {
-           tchar = getc(fp);
-           while ((tchar != '"') && (tchar != EOF)) {
-               tchar = getc(fp);
-           }
-       }
-       tchar = getc(fp);
-       while ((tchar != '"') && (tchar != EOF)) {
-           tchar = getc(fp);
-       }
-       j = 0;
-       tchar = getc(fp);
-       while ((tchar != '"') && (tchar != EOF)) {
-           line[j] = (char) tchar;
-           tchar = getc(fp);
-           j++;
-       }
-       line[j] = '\0';
-       XParseColor(Dpy, DefaultColormap(Dpy, DefaultScreen(Dpy)), line, &tmpcolr);
-       colrs[i].red = tmpcolr.red;
-       colrs[i].green = tmpcolr.green;
-       colrs[i].blue = tmpcolr.blue;
-    }
-    for (i = Colors; i < 256; i++) {
-       colrs[i].red = 0;
-       colrs[i].green = 0;
-       colrs[i].blue = 0;
-    }
-    tchar = getc(fp);
-    while ((tchar != ';') && (tchar != EOF)) {
-       tchar = getc(fp);
-    }
-
-    for (;;) {
-       if (!(fgets(line, MAX_LINE, fp))) {
-           fprintf(stderr, "Can't find Pixels\n");
-           return ((unsigned char *) NULL);
-       } else if (sscanf(line, "static char * %s = {", name_and_type) == 1) {
-           if ((t = (char *) rindex(name_and_type, '_')) == NULL) {
-               t = name_and_type;
-           } else {
-               t++;
-           }
-           if ((t2 = (char *) index(name_and_type, '[')) != NULL) {
-               *t2 = '\0';
-           }
-           if (!strcmp("pixels", t)) {
-               break;
-           }
-       }
-    }
-    pixels = (unsigned char *) malloc((*w) * (*h));
-    if (pixels == NULL) {
-       fprintf(stderr, "Not enough memory for data.\n");
-       return ((unsigned char *) NULL);
-    }
-
-    line[0] = '\0';
-    t = line;
-    dataP = pixels;
-    tchar = getc(fp);
-    while ((tchar != '"') && (tchar != EOF)) {
-       tchar = getc(fp);
-    }
-    tchar = getc(fp);
-    for (j = 0; j < (*h); j++) {
-       for (i = 0; i < (*w); i++) {
-           k = 0;
-           while ((tchar != '"') && (tchar != EOF) && (k < CharsPP)) {
-               line[k] = (char) tchar;
-               tchar = getc(fp);
-               k++;
-           }
-           if ((k == 0) && (tchar == '"')) {
-               tchar = getc(fp);
-               while ((tchar != '"') && (tchar != EOF)) {
-                   tchar = getc(fp);
-               }
-               k = 0;
-               tchar = getc(fp);
-               while ((tchar != '"') && (tchar != EOF) && (k < CharsPP)) {
-                   line[k] = (char) tchar;
-                   tchar = getc(fp);
-                   k++;
-               }
-           }
-           line[k] = '\0';
-           found = 0;
-           for (k = 0; k < Colors; k++) {
-               if (strncmp(Color_Vals[k], line, CharsPP) == 0) {
-                   *dataP++ = (unsigned char) k;
-                   found = 1;
-                   break;
-               }
-           }
-           if (found == 0) {
-               fprintf(stderr, "Invalid Pixel (%2s) in file\n", line);
-               *dataP++ = (unsigned char) 0;
-           }
-       }
-    }
-    bitp = pixels;
-    for (i = 0; i < ((*w) * (*h)); i++) {
-       if ((int) *bitp > (256 - 1))
-           *bitp = (unsigned char) 0;
-       bitp++;
-    }
-    for (i = 0; i < Colors; i++) {
-       free((char *) Color_Vals[i]);
-    }
-    free((char *) Color_Vals);
-    return (pixels);
-}
-
-
-unsigned char *
-ReadXbmBitmap(fp, w, h, colrs)
-FILE *fp;
-int *w, *h;
-struct colr_data *colrs;
-{
-    int blackbit = BlackPixel(Dpy, DefaultScreen(Dpy));
-    int whitebit = WhitePixel(Dpy, DefaultScreen(Dpy));
-    char line[MAX_LINE], name_and_type[MAX_LINE];
-    char *t;
-    char *t2;
-    unsigned char *ptr, *dataP;
-    int bytes_per_line, version10p, raster_length, padding;
-    int i, bytes, temp, value;
-    int Ncolors, charspp, xpmformat;
-
-    *w = 0;
-    *h = 0;
-    Ncolors = 0;
-    charspp = 0;
-    xpmformat = 0;
-    for (;;) {
-       if (!(fgets(line, MAX_LINE, fp)))
-           break;
-       if (strlen(line) == (MAX_LINE - 1)) {
-           fprintf(stderr, "Line too long.\n");
-           return ((unsigned char *) NULL);
-       }
-       if (sscanf(line, "#define %s %d", name_and_type, &value) == 2) {
-           if (!(t = (char *) rindex(name_and_type, '_')))
-               t = name_and_type;
-           else
-               t++;
-           if (!strcmp("width", t))
-               *w = value;
-           if (!strcmp("height", t))
-               *h = value;
-           if (!strcmp("ncolors", t))
-               Ncolors = value;
-           if (!strcmp("pixel", t))
-               charspp = value;
-           continue;
-       }
-       if (sscanf(line, "static short %s = {", name_and_type) == 1) {
-           version10p = 1;
-           break;
-       } else if (sscanf(line, "static char * %s = {", name_and_type) == 1) {
-           xpmformat = 1;
-           if (!(t = (char *) rindex(name_and_type, '_')))
-               t = name_and_type;
-           else
-               t++;
-           if ((t2 = (char *) index(name_and_type, '[')) != NULL)
-               *t2 = '\0';
-           if (!strcmp("mono", t))
-               continue;
-           else
-               break;
-       } else if (sscanf(line, "static char %s = {", name_and_type) == 1) {
-           version10p = 0;
-           break;
-       } else
-           continue;
-    }
-    if (xpmformat) {
-       dataP = ReadXpmPixmap(fp, w, h, colrs, Ncolors, charspp);
-       return (dataP);
-    }
-    if (*w == 0) {
-       fprintf(stderr, "Invalid width.\n");
-       return ((unsigned char *) NULL);
-    }
-    if (*h == 0) {
-       fprintf(stderr, "Invalid height.\n");
-       return ((unsigned char *) NULL);
-    }
-    padding = 0;
-    if (((*w % 16) >= 1) && ((*w % 16) <= 8) && version10p) {
-       padding = 1;
-    }
-    bytes_per_line = ((*w + 7) / 8) + padding;
-    raster_length = bytes_per_line * *h;
-    dataP = (unsigned char *) malloc((*w) * (*h));
-    if (dataP == NULL) {
-       fprintf(stderr, "Not enough memory.\n");
-       return ((unsigned char *) NULL);
-    }
-    ptr = dataP;
-    if (version10p) {
-       int cnt = 0;
-       int lim = (bytes_per_line - padding) * 8;
-       for (bytes = 0; bytes < raster_length; bytes += 2) {
-           if (fscanf(fp, " 0x%x%*[,}]%*[ \n]", &value) != 1) {
-               fprintf(stderr, "Error scanning bits item.\n");
-               return ((unsigned char *) NULL);
-           }
-           temp = value;
-           value = temp & 0xff;
-           for (i = 0; i < 8; i++) {
-               if (cnt < (*w)) {
-                   if (value & nibMask[i])
-                       *ptr++ = blackbit;
-                   else
-                       *ptr++ = whitebit;
-               }
-               if (++cnt >= lim)
-                   cnt = 0;
-           }
-           if ((!padding) || ((bytes + 2) % bytes_per_line)) {
-               value = temp >> 8;
-               for (i = 0; i < 8; i++) {
-                   if (cnt < (*w)) {
-                       if (value & nibMask[i])
-                           *ptr++ = blackbit;
-                       else
-                           *ptr++ = whitebit;
-                   }
-                   if (++cnt >= lim)
-                       cnt = 0;
-               }
-           }
-       }
-    } else {
-       int cnt = 0;
-       int lim = bytes_per_line * 8;
-       for (bytes = 0; bytes < raster_length; bytes++) {
-           if (fscanf(fp, " 0x%x%*[,}]%*[ \n]", &value) != 1) {
-               fprintf(stderr, "Error scanning bits item.\n");
-               return ((unsigned char *) NULL);
-           }
-           for (i = 0; i < 8; i++) {
-               if (cnt < (*w)) {
-                   if (value & nibMask[i])
-                       *ptr++ = blackbit;
-                   else
-                       *ptr++ = whitebit;
-               }
-               if (++cnt >= lim)
-                   cnt = 0;
-           }
-       }
-    }
-    NumColors = 2;
-    return (dataP);
-}
-
-
-unsigned char *
-ReadEbmBitmap(fp, w, h, colrs)
-FILE *fp;
-int *w, *h;
-struct colr_data *colrs;
-{
-    int i, temp, scale;
-    unsigned int bmap_size;
-    int *ptr[3];
-    int red, green, blue;
-    char line[1024];
-    unsigned char *bit_data;
-    unsigned char *bitp;
-
-    bit_data = NULL;
-    *w = 0;
-    *h = 0;
-
-    if ((fscanf(fp, "%12s %d %d %d\n", line, w, h, &scale) == 4) &&
-       (strcmp(line, "xstitch_data") == 0)) {
-       for (i = 0; i < 3; i++) {
-           fscanf(fp, "%s", line);
-           if (strcmp(line, "red") == 0) {
-               ptr[i] = &red;
-           } else if (strcmp(line, "green") == 0) {
-               ptr[i] = &green;
-           } else if (strcmp(line, "blue") == 0) {
-               ptr[i] = &blue;
-           } else {
-               fprintf(stderr, "File has improper format\n");
-               return ((unsigned char *) NULL);
-           }
-       }
-       fscanf(fp, "[^\n]\n");
-       for (i = 0; i < scale; i++) {
-           line[0] = '\0';
-           if (fscanf(fp, "%d %d %d%[^\n]\n", ptr[0], ptr[1], ptr[2], line) < 3) {
-               fprintf(stderr, "Bad color data #%d\n", i);
-           }
-           colrs[i].red = red * 65536 / scale;
-           colrs[i].green = green * 65536 / scale;
-           colrs[i].blue = blue * 65536 / scale;
-       }
-       for (i = scale; i < 256; i++) {
-           colrs[i].red = 0;
-           colrs[i].green = 0;
-           colrs[i].blue = 0;
-       }
-
-       bmap_size = (*w) * (*h);
-       bit_data = (unsigned char *) malloc(bmap_size);
-       if (bit_data == NULL) {
-           fprintf(stderr, "Cannot allocate space for bitmap\n");
-       }
-       bitp = bit_data;
-       for (i = 0; i < bmap_size; i++) {
-           if (dscan(fp, &temp) == -1)
-               break;
-           if (temp > (256 - 1))
-               temp = 0;
-           *bitp = (unsigned char) temp;
-           bitp++;
-       }
-    } else {
-       return ((unsigned char *) NULL);
-    }
-    NumColors = scale;
-    return (bit_data);
-}
-
-
-int
-swapint(in)
-int in;
-{
-    int out;
-
-    out = 0;
-    out = out | ((in >> 24) & 0xff);
-    out = out | ((in >> 8) & 0xff00);
-    out = out | ((in << 8) & 0xff0000);
-    out = out | ((in << 24) & 0xff000000);
-    return (out);
-}
-
-
-unsigned char *
-ReadCompactEbmBitmap(fp, w, h, colrs)
-FILE *fp;
-int *w, *h;
-struct colr_data *colrs;
-{
-    int i, scale;
-    unsigned int bmap_size;
-    char pix_file[1024];
-    unsigned char *bit_data;
-    unsigned char *bitp;
-    struct ebmhdr Hdr;
-    struct rgb_color color_data;
-    int doswap;
-
-    doswap = 0;
-    bit_data = NULL;
-    *w = 0;
-    *h = 0;
-
-    fread(&Hdr, sizeof(struct ebmhdr), 1, fp);
-    if (strcmp(Hdr.magic, "xstitch") == 0) {
-       /*
-        * a horrible hack to deal with different byte ordering on
-        * different machines.  Is based on assumption of only 2
-        * possible byte orderings, and never more than 256 colors.
-        */
-       if (Hdr.num_colors > 256) {
-           doswap = 1;
-           Hdr.width = swapint(Hdr.width);
-           Hdr.height = swapint(Hdr.height);
-           Hdr.num_colors = swapint(Hdr.num_colors);
-       }
-
-       *w = Hdr.width;
-       *h = Hdr.height;
-       scale = Hdr.num_colors;
-       for (i = 0; i < Hdr.num_colors; i++) {
-           fread(&color_data, sizeof(struct rgb_color), 1, fp);
-           if (doswap) {
-               color_data.red = swapint(color_data.red);
-               color_data.green = swapint(color_data.green);
-               color_data.blue = swapint(color_data.blue);
-               color_data.pix_len = swapint(color_data.pix_len);
-           }
-           colrs[i].red = color_data.red * 65536 / scale;
-           colrs[i].green = color_data.green * 65536 / scale;
-           colrs[i].blue = color_data.blue * 65536 / scale;
-           if (color_data.pix_len != 0) {
-               if (color_data.pix_len > 1023) {
-                   fprintf(stderr, "bad pattern\n");
-                   return ((unsigned char *) NULL);
-               }
-               fread(pix_file, sizeof(char), color_data.pix_len, fp);
-           }
-       }
-       for (i = scale; i < 256; i++) {
-           colrs[i].red = 0;
-           colrs[i].green = 0;
-           colrs[i].blue = 0;
-       }
-
-       bmap_size = (*w) * (*h);
-       bit_data = (unsigned char *) malloc(bmap_size);
-       if (bit_data == NULL) {
-           fprintf(stderr, "Cannot allocate space for bitmap\n");
-       }
-       fread(bit_data, sizeof(unsigned char), ((*w) * (*h)), fp);
-
-       bitp = bit_data;
-       for (i = 0; i < bmap_size; i++) {
-           if ((int) *bitp > (256 - 1))
-               *bitp = (unsigned char) 0;
-           bitp++;
-       }
-    } else {
-       return ((unsigned char *) NULL);
-    }
-    NumColors = scale;
-    return (bit_data);
-}
-
-
-unsigned char *
-ReadBitmap(fp, w, h, colrs)
-FILE *fp;
-int *w, *h;
-struct colr_data *colrs;
-{
-    unsigned char *bit_data;
-
-    NumColors = 0;
-
-    if (fp != NULL) {
-       bit_data = ReadEbmBitmap(fp, w, h, colrs);
-       if (bit_data != NULL) {
-           return (bit_data);
-       }
-       rewind(fp);
-       bit_data = ReadCompactEbmBitmap(fp, w, h, colrs);
-       if (bit_data != NULL) {
-           return (bit_data);
-       }
-#ifdef GIF
-       rewind(fp);
-       bit_data = ReadGifBitmap(fp, w, h, colrs);
-       if (bit_data != NULL) {
-           return (bit_data);
-       }
-#endif
-       rewind(fp);
-       bit_data = ReadXbmBitmap(fp, w, h, colrs);
-       if (bit_data != NULL) {
-           return (bit_data);
-       }
-    }
-    return ((unsigned char *) NULL);
-}
diff --git a/xfish.c b/xfish.c
index 7f6dbf4a3b35ed245ec1bc0f7a59cc71a2047775..8c4c47a9279ace985c76a6a878df22089795e870 100644 (file)
--- a/xfish.c
+++ b/xfish.c
@@ -44,6 +44,7 @@
 #include <signal.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
+#include <Imlib2.h>
 
 #include "vroot.h"
 #include "xfishy.h"
@@ -170,13 +171,15 @@ parse(argc, argv)
 int argc;
 char **argv;
 {
-    int c, i;
+    int c;
+    const char *display = getenv("DISPLAY");
     extern int optind;
     extern char *optarg;
     extern double atof();
 
     pname = argv[0];
-    strncpy(sname, getenv("DISPLAY"), sizeof(sname) - 1);
+    if (display != NULL)
+       strncpy(sname, display, sizeof(sname) - 1);
     strcpy(cname, "MediumAquamarine");
 
     while ((c = getopt(argc, argv, "dDob:C:c:p:m:f:i:r:s")) != EOF) {
@@ -651,6 +654,7 @@ int x, y, d;
 }
 
 
+void
 erasebubble(b, s)
 bubble *b;
 int s;
@@ -659,6 +663,7 @@ int s;
 }
 
 
+void
 putbubble(b, s, c)
 bubble *b;
 int s;
@@ -835,7 +840,6 @@ The fish colors are coded in xfishy.h as a trio of tables.
 void
 init_colormap()
 {
-    FILE *fp;
     int i, j, cnt;
     int NumCells;
     XColor hdef, edef;
@@ -856,12 +860,24 @@ init_colormap()
 
     Pcnt = 0;
     if (picname[0] != '\0') {
-       fp = fopen(picname, "r");
-       if (fp == NULL) {
-           fprintf(stderr, "Cannot open picture %s for reading\n", picname);
+       Imlib_Image image = imlib_load_image(picname);
+       if (image == NULL) {
+           fprintf(stderr, "Cannot load image %s\n", picname);
+           picname[0] = 0;
        } else {
-           Pdata = ReadBitmap(fp, &Pwidth, &Pheight, colrs);
-           fclose(fp);
+           imlib_context_set_image(image);
+           imlib_context_set_display(Dpy);
+           imlib_context_set_visual(DefaultVisual(Dpy, screen));
+           Pwidth = imlib_image_get_width();
+           Pheight = imlib_image_get_height();
+           DATA32 *image_data = imlib_image_get_data_for_reading_only();
+           Pdata = malloc(4 * Pwidth * Pheight);
+           for (i = 0; i < Pwidth * Pheight; i++) {
+               Pdata[4 * i] = image_data[i] & 0xFF;
+               Pdata[4 * i + 1] = image_data[i] & 0xFF00;
+               Pdata[4 * i + 2] = image_data[i] & 0xFF0000;
+               Pdata[4 * i + 3] = image_data[i] & 0xFF000000;
+           }
            Pcnt = ColorUsage(Pdata, Pwidth, Pheight, colrs);
        }
     }
@@ -1304,11 +1320,9 @@ Initialize signal so that SIGUSR1 causes secure mode to toggle.
 void
 init_signals()
 {
-    int ret;
-#ifdef linux
+#if defined(linux)
     signal(SIGUSR1, toggle_secure);
-#else
-#if defined(MOTOROLA) || defined(SCO)
+#elif defined(MOTOROLA) || defined(SCO)
     sigset(SIGUSR1, toggle_secure);
 #else
     struct sigvec vec;
@@ -1318,22 +1332,15 @@ init_signals()
     vec.sv_onstack = 0;
 
 #ifndef hpux
-    ret = sigvec(SIGUSR1, &vec, &vec);
-#if 0
-    if (ret != 0) {
-       fprintf(stderr, "sigvec call failed\n");
-    } else {
-       fprintf(stderr, "sigvec call OK\n");
-    }
-#endif
+    sigvec(SIGUSR1, &vec, &vec);
 #else
     sigvector(SIGUSR1, &vec, &vec);
 #endif
-#endif /* MOTOROLA */
-#endif /* LINUX */
+#endif
 }
 
 
+void
 set_window_type_desktop(Display *dpy, Window wid)
 {
     Atom _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP;
@@ -1356,11 +1363,8 @@ initialize()
     XSetWindowAttributes attr;
     XGCValues vals;
     XSizeHints xsh;
-    XImage *pimage;
-    int i, size, cnt;
+    int i;
     char *p;
-    unsigned char *ndata;
-    unsigned char *ptr1, *ptr2;
 
     root_window = VirtualRootWindowOfScreen(DefaultScreenOfDisplay(Dpy));
 
@@ -1368,7 +1372,6 @@ initialize()
     width = winfo.width;
     height = winfo.height;
 
-    picname[0] = '\0';
     if ((p = XGetDefault(Dpy, pname, "BubbleLimit")) != NULL)
        blimit = atoi(p);
     if ((p = XGetDefault(Dpy, pname, "ColorLimit")) != NULL)
@@ -1407,20 +1410,11 @@ initialize()
     init_colormap();
 
     if (picname[0] != '\0') {
-       size = Pwidth * Pheight;
-       ndata = (unsigned char *) malloc(size);
-       ptr1 = Pdata;
-       ptr2 = ndata;
-       cnt = 1;
-       for (i = 0; i < size; i++) {
-           *ptr2 = cmap[cnt + (int) (*ptr1)];
-           ptr1++;
-           ptr2++;
-       }
-       pimage = MakeImage(ndata, Pwidth, Pheight);
-       free((char *) ndata);
-       i = DisplayPlanes(Dpy, screen);
-       PicMap = XCreatePixmap(Dpy, root_window, Pwidth, Pheight, i);
+       imlib_context_set_colormap(colormap);
+       PicMap = XCreatePixmap(Dpy, root_window, Pwidth, Pheight, DisplayPlanes(Dpy, screen));
+       imlib_context_set_drawable(PicMap);
+       imlib_render_image_on_drawable(0, 0);
+
     }
 
     if ((DoubleBuf) || (picname[0] != '\0')) {
@@ -1486,7 +1480,6 @@ initialize()
        XSetNormalHints(Dpy, wid, &xsh);
 
        if (picname[0] != '\0') {
-           XPutImage(Dpy, PicMap, gc, pimage, 0, 0, 0, 0, Pwidth, Pheight);
            XSetWindowBackgroundPixmap(Dpy, wid, PicMap);
        }
 
index 043d007e7fe0b56a95e7a4a07e82d464b2a914dd..6e5bc025d8a73e5208e775da4981c48baea67095 100644 (file)
 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 .\"
-.TH XFISHTANK 1 "29 November 1996" "V2.2"
+.TH XFISHTANK 1x "29 November 1996" "V2.2"
 .SH NAME
 xfishtank \- Fish swimming across your Root Window
 .SH SYNOPSIS
 .B xfishtank
-[-c <color>] [-b <limit>] [-f <limit>] [-i <mult>] [-r <rate>] [-m <num>]
-[-C <num>] [-d] [-p <file>] [host:display]
+[\-c <color>] [\-b <limit>] [\-f <limit>] [\-i <mult>] [\-r <rate>] [\-m <num>]
+[\-C <num>] [\-d] [\-p <file>] [host:display]
 .SH DESCRIPTION
 .LP
 xfishtank is a animation program to simulate an Aquarium on your X desktop.
This page took 0.048488 seconds and 4 git commands to generate.