2b211e25eb6dbe0a55690c87d2bccf83a34f1e1f
braney
  Thu Jul 1 15:18:45 2010 -0700
fix phyloGif to write out PNG, and make sure no one can write out GIF if USE_PNG is set
diff --git src/lib/gifwrite.c src/lib/gifwrite.c
index 3c9cf58..be39687 100644
--- src/lib/gifwrite.c
+++ src/lib/gifwrite.c
@@ -1,97 +1,99 @@
 /* writegif.c - stuff to write out a GIF file.  See also comprs.c */
 
+#ifndef USE_PNG
 #include "common.h"
 #include "memgfx.h"
 #include "gifcodes.h"
 
 static char const rcsid[] = "$Id: gifwrite.c,v 1.9 2010/06/05 19:29:53 braney Exp $";
 
 static char gifsig[] = "GIF87a";
 
 // GIF Graphic Control Extension, for making the background color transparent:
 static struct gif_gce
     {
     unsigned char extensionIntroducer, graphicControlLabel, blockSize;
     unsigned char flags;
     unsigned char delayTimeLo,delayTimeHi;
     unsigned char transparentColorIndex;
     unsigned char blockTerminator;
     } gce = {0x21, 0xF9, 0x04, // fixed bytes from spec
 	     0x01,             // transparency on (no user input or disposal options)
 	     0x00, 0x00,       // no animation delay time
 	     0x00,             // color index 0 (white) is transparent
 	     0x00};
 
 boolean mgSaveToGif(FILE *gif_file, struct memGfx *screen, boolean useTransparency)
 /* Save GIF to an already open file.
  * If useTransparency, then the first color in memgfx's colormap/palette is
  * assumed to be the image background color, and pixels of that color
  * are made transparent. */
 {
 int i;
 struct gif_header gif;
 struct gif_image gim;
 long gif_wcount;
 
 gif_wcount = (long)screen->width * screen->height;
 zeroBytes(&gif, sizeof(gif));
 strncpy(gif.giftype, gifsig, sizeof(gif.giftype));
 gif.wlo = gim.wlo = ((screen->width)&0xff);
 gif.whi = gim.whi = ((screen->width>>8)&0xff);
 gif.hlo = gim.hlo = ((screen->height)&0xff);
 gif.hhi = gim.hhi = ((screen->height>>8)&0xff);
 gim.xlo = gim.xhi = gim.ylo = gim.yhi = gim.flags = 0;
 gif.colpix = COLPIXVGA13;
 if (fwrite(&gif, sizeof(gif), 1, gif_file ) < 1)
     goto TRUNCOUT;
 /* write global color map */
 if (fwrite(screen->colorMap, 3, 256, gif_file) < 256)
     goto TRUNCOUT;
 
 if (useTransparency)
     if (fwrite(&gce, sizeof(gce), 1, gif_file ) < 1)
 	goto TRUNCOUT;
 
 if (fputc(',', gif_file) < 0) /* comma to start image */
     goto TRUNCOUT;
 if (fwrite(&gim, sizeof(gim), 1, gif_file) < 1)
     goto TRUNCOUT;
 fputc(8,gif_file);
 fflush(gif_file);
 i = gif_compress_data(8, (unsigned char*)screen->pixels, gif_wcount, gif_file);
 switch (i)
     {
     case 0:
         break;
     case -2:
 	warn("Out of memory writing GIF");
 	goto BADOUT;
     case -3:
 	goto TRUNCOUT;
     default:
 	warn("Error code %d writing gif", i);
 	goto BADOUT;
     }
 fputc(';', gif_file); /* end of file for gif */
 return(TRUE);
 TRUNCOUT:
 warn("Disk full writing GIF");
 BADOUT:
 return(FALSE);
 }
 
 void mgSaveGif(struct memGfx *screen, char *name, boolean useTransparency)
 /* Save memory bitmap as a gif.
  * If useTransparency, then the first color in memgfx's colormap/palette is
  * assumed to be the image background color, and pixels of that color
  * are made transparent. */
 {
 FILE *gifFile = mustOpen(name, "wb");
 if (!mgSaveToGif(gifFile, screen, useTransparency))
     {
     remove(name);
     errAbort("Couldn't save %s", name);
     }
 if (fclose(gifFile) != 0)
     errnoAbort("fclose failed");
 }
+#endif