*** Imakefile Wed Apr 28 21:15:28 1993 --- Imakefile.new Sat Jul 17 13:13:52 1993 *************** *** 190,196 **** xvgifwr.c xvdir.c xvbutt.c xvpbm.c xvxbm.c xvgam.c xvbmp.c \ xvdial.c xvgraf.c xvsunras.c xvjpeg.c xvps.c xvpopup.c xvdflt.c \ xvtiff.c xvtiffwr.c xvpds.c xvrle.c xviris.c xvgrab.c vprintf.c \ ! xvbrowse.c xvtext.c xvpcx.c OBJS1 = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ --- 190,196 ---- xvgifwr.c xvdir.c xvbutt.c xvpbm.c xvxbm.c xvgam.c xvbmp.c \ xvdial.c xvgraf.c xvsunras.c xvjpeg.c xvps.c xvpopup.c xvdflt.c \ xvtiff.c xvtiffwr.c xvpds.c xvrle.c xviris.c xvgrab.c vprintf.c \ ! xvbrowse.c xvtext.c xvpcx.c xvfits.o OBJS1 = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ *************** *** 197,203 **** xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o SRCS2= bggen.c OBJS2= bggen.o --- 197,203 ---- xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o xvfits.o SRCS2= bggen.c OBJS2= bggen.o *** Makefile.std Fri Apr 23 02:33:09 1993 --- Makefile.std.new Sat Jul 17 13:13:53 1993 *************** *** 218,224 **** xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o MISC = README INSTALL CHANGELOG IDEAS --- 218,224 ---- xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o xvfits.o MISC = README INSTALL CHANGELOG IDEAS *** Makefile Fri Apr 23 02:33:36 1993 --- Makefile.new Sat Jul 17 15:25:38 1993 *************** *** 218,224 **** xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o MISC = README INSTALL CHANGELOG IDEAS --- 218,224 ---- xvgifwr.o xvdir.o xvbutt.o xvpbm.o xvxbm.o xvgam.o xvbmp.o \ xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ ! xvbrowse.o xvtext.o xvpcx.o xvfits.o MISC = README INSTALL CHANGELOG IDEAS *** xv.c Fri Apr 23 02:32:29 1993 --- xv.c.new Thu Aug 19 16:33:03 1993 *************** *** 2366,2373 **** FILE *fp; ! byte magicno[8]; /* first 8 bytes of file */ ! int rv; if (!fname) return RFT_ERROR; /* shouldn't happen */ --- 2366,2373 ---- FILE *fp; ! byte magicno[30]; /* first 30 bytes of file */ ! int rv, n; if (!fname) return RFT_ERROR; /* shouldn't happen */ *************** *** 2380,2389 **** if (!fp) return RFT_ERROR; ! rv = fread(magicno,8,1,fp); fclose(fp); ! if (rv!=1) return RFT_UNKNOWN; /* files less than 8 bytes long... */ rv = RFT_UNKNOWN; --- 2380,2389 ---- if (!fp) return RFT_ERROR; ! n = fread(magicno,1,30,fp); fclose(fp); ! if (n < 8) return RFT_UNKNOWN; /* files less than 8 bytes long... */ rv = RFT_UNKNOWN; *************** *** 2412,2417 **** --- 2412,2420 ---- else if (magicno[0]==0x0a && magicno[1] <= 5) rv = RFT_PCX; + else if (strncmp((char *) magicno,"SIMPLE ",8)==0 && n == 30 && + magicno[29] == 'T') rv = RFT_FITS; + #ifdef HAVE_JPEG else if (magicno[0]==0xff && magicno[1]==0xd8 && magicno[2]==0xff) rv = RFT_JFIF; *************** *** 2467,2472 **** --- 2470,2476 ---- case RFT_UTAHRLE: rv = LoadRLE (fname, pinfo); break; case RFT_IRIS: rv = LoadIRIS (fname, pinfo); break; case RFT_PCX: rv = LoadPCX (fname, pinfo); break; + case RFT_FITS: rv = LoadFITS (fname, pinfo, quick); break; #ifdef HAVE_JPEG case RFT_JFIF: rv = LoadJFIF (fname, pinfo); break; *** xv.h Fri Apr 23 02:33:49 1993 --- xv.h.new Thu Aug 19 17:29:02 1993 *************** *** 454,469 **** #define F_BMP 6 #define F_PS 7 #define F_IRIS 8 #ifdef HAVE_JPEG ! #define F_JPEG 9 #endif #ifdef HAVE_TIFF #ifdef HAVE_JPEG ! #define F_TIFF 10 #else ! #define F_TIFF 9 #endif #endif --- 454,470 ---- #define F_BMP 6 #define F_PS 7 #define F_IRIS 8 + #define F_FITS 9 #ifdef HAVE_JPEG ! #define F_JPEG 10 #endif #ifdef HAVE_TIFF #ifdef HAVE_JPEG ! #define F_TIFF 11 #else ! #define F_TIFF 10 #endif #endif *************** *** 489,494 **** --- 490,496 ---- #define RFT_PDSVICAR 12 #define RFT_COMPRESS 13 #define RFT_PS 14 + #define RFT_FITS 15 /* definitions for page up/down, arrow up/down list control */ #define LS_PAGEUP 0 *************** *** 1381,1386 **** --- 1383,1393 ---- /**************************** XVPCX.C ***************************/ int LoadPCX(char *, PICINFO *); + /**************************** XVFITS.C **************************/ + int LoadFITS(char *, PICINFO *, int); + int WriteFITS(FILE *, byte *, int, int, int, byte *, byte *, byte *, + int, int, char *); + /**************************** XVJPEG.C ***************************/ int LoadJFIF(char *, PICINFO *); void CreateJPEGW(void); *************** *** 1627,1632 **** --- 1634,1643 ---- /**************************** XVPCX.C ***************************/ int LoadPCX(); + + /**************************** XVFITS.C **************************/ + int LoadFITS(); + int WriteFITS(); /**************************** XVJPEG.C ***************************/ int LoadJFIF(); *** xvbrowse.c Thu Jun 24 03:41:32 1993 --- xvbrowse.c.new Sat Jul 17 13:16:08 1993 *************** *** 93,98 **** --- 93,99 ---- #include "bitmaps/br_utahrle.xbm" #include "bitmaps/br_iris.xbm" #include "bitmaps/br_pcx.xbm" + #include "bitmaps/br_fits.xbm" #include "bitmaps/br_jfif.xbm" #include "bitmaps/br_tiff.xbm" #include "bitmaps/br_pds.xbm" *************** *** 130,136 **** #define BF_PDS 20 #define BF_COMPRESS 21 #define BF_PS 22 ! #define BF_MAX 23 /* # of built-in icons */ #define ISLOADABLE(ftyp) (ftyp!=BF_DIR && ftyp!=BF_CHR && ftyp!=BF_BLK && \ ftyp!=BF_SOCK && ftyp!=BF_FIFO) --- 131,138 ---- #define BF_PDS 20 #define BF_COMPRESS 21 #define BF_PS 22 ! #define BF_FITS 23 ! #define BF_MAX 24 /* # of built-in icons */ #define ISLOADABLE(ftyp) (ftyp!=BF_DIR && ftyp!=BF_CHR && ftyp!=BF_BLK && \ ftyp!=BF_SOCK && ftyp!=BF_FIFO) *************** *** 580,585 **** --- 582,591 ---- br_pcx_bits,br_pcx_width,br_pcx_height, 1,0,1); + bfIcons[BF_FITS] = XCreatePixmapFromBitmapData(theDisp, br->win, + br_fits_bits,br_fits_width,br_fits_height, + 1,0,1); + bfIcons[BF_JFIF] = XCreatePixmapFromBitmapData(theDisp, br->win, br_jfif_bits,br_jfif_width,br_jfif_height, 1,0,1); *************** *** 2902,2907 **** --- 2908,2914 ---- case RFT_PDSVICAR: bf->ftype = BF_PDS; break; case RFT_COMPRESS: bf->ftype = BF_COMPRESS; break; case RFT_PS: bf->ftype = BF_PS; break; + case RFT_FITS: bf->ftype = BF_FITS; break; } } } *************** *** 3401,3406 **** --- 3408,3414 ---- case RFT_UTAHRLE: strcat(str,"Utah RLE file"); break; case RFT_IRIS: strcat(str,"Iris RGB file"); break; case RFT_PCX: strcat(str,"PCX file"); break; + case RFT_FITS: strcat(str, "FITS file"); break; case RFT_JFIF: strcat(str,"JPEG file"); break; case RFT_TIFF: strcat(str,"TIFF file"); break; case RFT_PDSVICAR: strcat(str,"PDS/VICAR file"); break; *** xvdir.c Thu Jun 24 03:41:32 1993 --- xvdir.c.new Sat Jul 17 13:16:09 1993 *************** *** 83,89 **** #define LISTW 237 #define DIRWIDE 350 /* (fixed) size of directory window */ ! #define DIRHIGH 460 #define BUTTW 60 #define BUTTH 24 --- 83,89 ---- #define LISTW 237 #define DIRWIDE 350 /* (fixed) size of directory window */ ! #define DIRHIGH 478 #define BUTTW 60 #define BUTTH 24 *************** *** 220,226 **** infofg, infobg,hicol,locol); RBCreate(formatRB, dirW, 26, y+144, "IRIS", infofg, infobg,hicol,locol); ! y = y + 162; #ifdef HAVE_JPEG RBCreate(formatRB, dirW, 26, y, "JPEG", infofg, infobg,hicol,locol); --- 220,228 ---- infofg, infobg,hicol,locol); RBCreate(formatRB, dirW, 26, y+144, "IRIS", infofg, infobg,hicol,locol); ! RBCreate(formatRB, dirW, 26, y+162, "FITS", ! infofg, infobg,hicol,locol); ! y = y + 180; #ifdef HAVE_JPEG RBCreate(formatRB, dirW, 26, y, "JPEG", infofg, infobg,hicol,locol); *************** *** 361,367 **** int x,y; { BUTT *bp; ! int bnum,i; char buf[1024]; --- 363,369 ---- int x,y; { BUTT *bp; ! int bnum,i,fmt; char buf[1024]; *************** *** 368,380 **** /* check the RBUTTS first, since they don't DO anything */ if ( (bnum=RBClick(formatRB, x,y)) >= 0) { if (RBTrack(formatRB, bnum)) { ! if (RBWhich(formatRB)==4) { /* turn off all but B/W dithered */ RBSetActive(colorRB,0,0); RBSetActive(colorRB,1,0); RBSetActive(colorRB,3,0); RBSelect(colorRB,2); ! } ! else { /* turn on all but B/W dithered */ RBSetActive(colorRB,0,1); RBSetActive(colorRB,1,1); RBSetActive(colorRB,3,(picType==PIC8) ? 1 : 0); --- 370,387 ---- /* check the RBUTTS first, since they don't DO anything */ if ( (bnum=RBClick(formatRB, x,y)) >= 0) { if (RBTrack(formatRB, bnum)) { ! fmt = RBWhich(formatRB); ! if (fmt==F_XBM) { /* turn off all but B/W dithered */ RBSetActive(colorRB,0,0); RBSetActive(colorRB,1,0); RBSetActive(colorRB,3,0); RBSelect(colorRB,2); ! } else if (fmt == F_FITS) { /* turn off all but greyscale & B/W dithered */ ! RBSetActive(colorRB,0,0); ! RBSetActive(colorRB,1,1); ! RBSetActive(colorRB,3,0); ! RBSelect(colorRB,1); ! } else { /* turn on all but B/W dithered */ RBSetActive(colorRB,0,1); RBSetActive(colorRB,1,1); RBSetActive(colorRB,3,(picType==PIC8) ? 1 : 0); *************** *** 409,419 **** RBSetActive(colorRB, i, !flistCB.val); } ! if (RBWhich(formatRB) == F_XBM && !flistCB.val) { RBSetActive(colorRB, 0, 0); RBSetActive(colorRB, 1, 0); RBSetActive(colorRB, 3, 0); } } } --- 416,431 ---- RBSetActive(colorRB, i, !flistCB.val); } ! fmt = RBWhich(formatRB); ! if (fmt == F_XBM && !flistCB.val) { RBSetActive(colorRB, 0, 0); RBSetActive(colorRB, 1, 0); RBSetActive(colorRB, 3, 0); } + if (fmt == F_FITS && !flistCB.val) { + RBSetActive(colorRB, 0, 0); + RBSetActive(colorRB, 3, 0); + } } } *************** *** 1120,1125 **** --- 1132,1140 ---- case F_IRIS: rv = WriteIRIS(fp, thepic, ptype, w, h, rp, gp, bp, nc, col); break; + + case F_FITS: + rv = WriteFITS(fp, thepic, ptype, w, h, rp, gp, bp, nc, col, picComments); break; } if (CloseOutFile(fp, fullname, rv) == 0) { *************** *** 1210,1215 **** --- 1225,1232 ---- void SetDirRButt(group, bnum) int group, bnum; { + int fmt; + if (group == F_COLORS) { if (picType == PIC24) { /* disable REDUCED COLOR */ RBSetActive(colorRB, 3, 0); *************** *** 1225,1238 **** else if (group == F_FORMAT) { RBSelect(formatRB, bnum); ! if (RBWhich(formatRB) == F_XBM) { /* turn off all but B/W */ RBSetActive(colorRB,0,0); RBSetActive(colorRB,1,0); RBSetActive(colorRB,3,0); RBSelect(colorRB,2); ! } ! ! else { /* turn on all but B/W dithered */ RBSetActive(colorRB,0,1); RBSetActive(colorRB,1,1); RBSetActive(colorRB,3, (picType==PIC8) ? 1 : 0); --- 1242,1258 ---- else if (group == F_FORMAT) { RBSelect(formatRB, bnum); ! fmt = RBWhich(formatRB); ! if (fmt == F_XBM) { /* turn off all but B/W */ RBSetActive(colorRB,0,0); RBSetActive(colorRB,1,0); RBSetActive(colorRB,3,0); RBSelect(colorRB,2); ! } else if (fmt == F_FITS) { /* turn off all but greyscale & B/W dithered */ ! RBSetActive(colorRB,0,0); ! RBSetActive(colorRB,3,0); ! RBSelect(colorRB,1); ! } else { /* turn on all but B/W dithered */ RBSetActive(colorRB,0,1); RBSetActive(colorRB,1,1); RBSetActive(colorRB,3, (picType==PIC8) ? 1 : 0); *************** *** 1283,1288 **** --- 1303,1310 ---- (strcmp(lowsuf,"ps" )==0) || (strcmp(lowsuf,"eps" )==0) || (strcmp(lowsuf,"rgb" )==0) || + (strcmp(lowsuf,"fits")==0) || + (strcmp(lowsuf,"fts" )==0) || (strcmp(lowsuf,"jpg" )==0) || (strcmp(lowsuf,"jpeg")==0) || (strcmp(lowsuf,"jfif")==0) || *************** *** 1310,1315 **** --- 1332,1338 ---- case F_BMP: strcpy(lowsuf,"bmp"); break; case F_PS: strcpy(lowsuf,"ps"); break; case F_IRIS: strcpy(lowsuf,"rgb"); break; + case F_FITS: strcpy(lowsuf,"fts"); break; #ifdef HAVE_JPEG case F_JPEG: strcpy(lowsuf,"jpg"); break;