debian/0000755000000000000000000000000012231215750007164 5ustar debian/source/0000755000000000000000000000000011741317361010472 5ustar debian/source/format0000644000000000000000000000001411741322073011674 0ustar 3.0 (quilt) debian/control0000644000000000000000000000135712223054577010606 0ustar Source: xloadimage Section: graphics Priority: optional Build-Depends: debhelper (>= 9), libjpeg-dev, libtiff-dev, libpng-dev, libx11-dev, libxau-dev, libxdmcp-dev, libxt-dev, file Maintainer: Dominik George Standards-Version: 3.9.4 Package: xloadimage Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Description: Graphics file viewer under X11 Can view png, jpeg, gif, tiff, niff, sunraster, fbm, cmuraster, pbm, faces, rle, xwd, vff, mcidas, vicar, pcx, gem, macpaint, xpm and xbm files. Can view images, put them on the root window, or dump them. Does a variety of processing, including: clipping, dithering, depth reduction, zoom, brightening/darkening and merging. . Includes xsetbg, xview and uufilter. debian/dirs0000644000000000000000000000004611742054655010063 0ustar usr/bin etc/X11 usr/lib/mime/packages debian/compat0000644000000000000000000000000211741322077010370 0ustar 9 debian/mime0000644000000000000000000000171711741317361010052 0ustar image/gif ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/jpeg ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/png ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/tiff ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-cmu-raster; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-portable-anymap; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-portable-bitmap; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-portable-graymap; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-portable-pixmap; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-xbitmap ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-xpixmap ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 image/x-xwindowdump ; /usr/bin/xloadimage %s ; test=test -n "$DISPLAY" ; priority=1 debian/postrm0000755000000000000000000000013111742051213010427 0ustar #!/bin/sh set -e if [ -x /usr/sbin/update-mime ]; then update-mime fi #DEBHELPER# debian/rules0000755000000000000000000000331511747260162010256 0ustar #!/usr/bin/make -f install_dir=install -d -m 755 install_file=install -m 644 install_script=install -m 755 install_binary=install -m 755 PACKAGE = xloadimage PKGDIR = $(CURDIR)/debian/$(PACKAGE) export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_CFLAGS_MAINT_APPEND = -Wall -DLINT export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed CHANGELOG = debian/upstream.changelog get-changelog: # extract details awk '/^[Vv]ersion *[0-9]/,/end-of-file/ {print}' README > $(CHANGELOG) override_dh_installchangelogs: get-changelog dh_installchangelogs $(CHANGELOG) override_dh_auto_configure: chmod 755 build-info configure # uufilter does not respect LDFLAGS, so send all flags in CFLAGS CFLAGS="$(CFLAGS) $(CPPFLAGS) $(LDFLAGS)" \ ./configure --prefix=/usr override_dh_clean: rm -f build *.o xloadimage uufilter build.c config.log config.cache \ config.status config.h Makefile jpeg.conf tiff.conf rm -rf debian/tmp debian/files* debian/substvars debian/patched find . -name \*~ | xargs rm -vf dh_clean override_dh_auto_install: $(install_binary) xloadimage $(PKGDIR)/usr/bin/ ln -s xloadimage $(PKGDIR)/usr/bin/xsetbg ln -s xloadimage $(PKGDIR)/usr/bin/xview $(install_binary) uufilter $(PKGDIR)/usr/bin/ $(install_file) xloadimagerc $(PKGDIR)/etc/X11/Xloadimage $(install_file) debian/mime $(PKGDIR)/usr/lib/mime/packages/xloadimage $(install_dir) $(PKGDIR)/usr/share/man/man1/ $(install_file) xloadimage.man $(PKGDIR)/usr/share/man/man1/xloadimage.1x $(install_file) uufilter.man $(PKGDIR)/usr/share/man/man1/uufilter.1x ln -s xloadimage.1x.gz $(PKGDIR)/usr/share/man/man1/xsetbg.1x.gz ln -s xloadimage.1x.gz $(PKGDIR)/usr/share/man/man1/xview.1x.gz %: dh $@ .PHONY: get-changelog # End of file debian/patches/0000755000000000000000000000000012223054422010611 5ustar debian/patches/03_security-strfoo.patch0000755000000000000000000001075611741321713015335 0ustar From: James Troup Subject: Fix unsafe str{cat,cpy} usage. diff -urNad 03.xloadimage.tmp/config.c 03.xloadimage/config.c --- 03.xloadimage.tmp/config.c 2003-04-02 19:16:50.000000000 +0100 +++ 03.xloadimage/config.c 2003-04-02 19:16:44.000000000 +0100 @@ -256,7 +256,8 @@ } break; case parse_filter_name: /* name of filter program */ - strcpy(filter_name, buf); + strncpy(filter_name, buf, BUFSIZ - 1); + filter_name[BUFSIZ - 1] = '\0'; state= parse_filter_extension; break; case parse_filter_extension: @@ -454,7 +455,8 @@ #endif else if(*p == '~') { buf1[b1] = '\0'; - strcat(buf1, getenv("HOME")); + strncat(buf1, getenv("HOME"), BUFSIZ - strlen(buf1) - 1); + buf1[BUFSIZ - 1] = '\0'; b1 = strlen(buf1); var = 0; } @@ -462,7 +464,8 @@ if(var) { buf1[b1] = '\0'; buf2[b2] = '\0'; - strcat(buf1, getenv(buf2)); + strncat(buf1, getenv(buf2), BUFSIZ - strlen (buf1) - 1); + buf1[BUFSIZ - 1] = '\0'; b1 = strlen(buf1); buf2[0] = '\0'; b2 = 0; diff -urNad 03.xloadimage.tmp/faces.c 03.xloadimage/faces.c --- 03.xloadimage.tmp/faces.c 1993-10-21 22:28:37.000000000 +0100 +++ 03.xloadimage/faces.c 2003-04-02 19:16:44.000000000 +0100 @@ -108,9 +108,15 @@ if (! strcmp(buf, "\n")) break; if (!strncmp(buf, "FirstName:", 10)) - strcpy(fname, buf + 11); + { + strncpy(fname, buf + 11, BUFSIZ - 1); + fname[BUFSIZ - 1] = '\0'; + } else if (!strncmp(buf, "LastName:", 9)) - strcpy(lname, buf + 10); + { + strncpy(lname, buf + 10, BUFSIZ - 1); + lname[BUFSIZ - 1] = '\0'; + } else if (!strncmp(buf, "Image:", 6)) { if (sscanf(buf + 7, "%d%d%d", &iw, &ih, &id) != 3) { printf("%s: Bad Faces Project image\n", fullname); @@ -136,7 +142,7 @@ image= newRGBImage(w, h, d); fname[strlen(fname) - 1]= ' '; - strcat(fname, lname); + strncat(fname, lname, BUFSIZ - strlen(fname) -1); fname[strlen(fname) - 1]= '\0'; image->title= dupString(fname); diff -urNad 03.xloadimage.tmp/imagetypes.c 03.xloadimage/imagetypes.c --- 03.xloadimage.tmp/imagetypes.c 2003-04-02 19:16:50.000000000 +0100 +++ 03.xloadimage/imagetypes.c 2003-04-02 19:16:44.000000000 +0100 @@ -146,7 +146,10 @@ optptr++; /* skip comma */ } else - strcpy(typename, type); + { + strncpy(typename, type, 31); + typename[31] = '\0'; + } for (a= 0; ImageTypes[a].loader; a++) if (!strncmp(ImageTypes[a].type, typename, strlen(typename))) { diff -urNad 03.xloadimage.tmp/options.c 03.xloadimage/options.c --- 03.xloadimage.tmp/options.c 2003-04-02 19:16:50.000000000 +0100 +++ 03.xloadimage/options.c 2003-04-02 19:16:44.000000000 +0100 @@ -13,6 +13,9 @@ #include "image.h" #include "options.h" +#undef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) + extern char *ProgramName; /* options array and definitions. If you add something to this you also * need to add its OptionId in options.h. @@ -883,12 +886,13 @@ */ p = index(*opt_string, ','); if (p != NULL) { - strncpy(option_name, *opt_string, p - *opt_string); - option_name[p - *opt_string] = '\0'; + strncpy(option_name, *opt_string, MIN(BUFSIZ - 1, p - *opt_string)); + option_name[MIN(BUFSIZ - 1, p - *opt_string)] = '\0'; *opt_string = p + 1; /* increment to next option */ } else { - strcpy(option_name, *opt_string); + strncpy(option_name, *opt_string, BUFSIZ -1); + option_name[BUFSIZ - 1] = '\0'; *opt_string += strlen(*opt_string); /* increment to end of string */ } *name = option_name; @@ -897,7 +901,8 @@ */ p = index(option_name, '='); if (p != NULL) { - strcpy(option_value, p + 1); + strncpy(option_value, p + 1, BUFSIZ - 1); + option_value[BUFSIZ - 1] = '\0'; *p = '\0'; /* stomp equals sign */ *value = option_value; } diff -urNad 03.xloadimage.tmp/packtar.c 03.xloadimage/packtar.c --- 03.xloadimage.tmp/packtar.c 1993-11-09 21:18:14.000000000 +0000 +++ 03.xloadimage/packtar.c 2003-04-02 19:16:44.000000000 +0100 @@ -48,9 +48,12 @@ char new_file[1024]; char *p; - strcpy(new_file, dir); /* target directory */ - strcat(new_file, "/"); - strcat(new_file, old_file); + strncpy(new_file, dir, 1023); /* target directory */ + new_file[1023] = '\0'; + strncat(new_file, "/", 1023 - strlen(new_file)); + new_file[1023] = '\0'; + strncat(new_file, old_file, 1023 - strlen(new_file)); + new_file[1023] = '\0'; for (p = new_file; p = strchr(p, '/'); p++) { *p = '\0'; /* stomp directory separator */ debian/patches/14_errno-not-extern.patch0000755000000000000000000000447711741321713015407 0ustar From: James Troup Subject: Remove 'extern int errno' which breaks with new glibc (>= 2.3.2-ds1-8) and add #include where needed. diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/config.c xloadimage-4.1/config.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/config.c 2003-10-31 01:50:29.000000000 +0000 +++ xloadimage-4.1/config.c 2003-10-31 01:50:29.000000000 +0000 @@ -26,8 +26,6 @@ /* SUPPRESS 530 */ /* SUPPRESS 560 */ -extern int errno; - struct filter *Filters = (struct filter *)NULL; static unsigned int NumPaths= 0; diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/imagetypes.c xloadimage-4.1/imagetypes.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/imagetypes.c 2003-10-31 01:50:29.000000000 +0000 +++ xloadimage-4.1/imagetypes.c 2003-10-31 01:50:29.000000000 +0000 @@ -16,7 +16,6 @@ /* SUPPRESS 560 */ -extern int errno; extern int findImage(char *name, char *fullname); /* load a named image diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/img.c xloadimage-4.1/img.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/img.c 2003-10-31 01:50:29.000000000 +0000 +++ xloadimage-4.1/img.c 2003-10-31 01:50:43.000000000 +0000 @@ -14,10 +14,9 @@ #include #include #include +#include #include "image.h" -extern int errno; - #define TRUE 1 #define FALSE 0 diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/packtar.c xloadimage-4.1/packtar.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/packtar.c 2003-10-31 01:50:29.000000000 +0000 +++ xloadimage-4.1/packtar.c 2003-10-31 01:50:29.000000000 +0000 @@ -11,8 +11,6 @@ #include #include -extern int errno; - /* poor-man's varargs. good enough for now. */ int run(a0, a1, a2, a3, a4, a5, a6, a7, a8) diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/window.c xloadimage-4.1/window.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/window.c 2003-10-31 01:50:29.000000000 +0000 +++ xloadimage-4.1/window.c 2003-10-31 01:50:29.000000000 +0000 @@ -33,8 +33,6 @@ /* SUPPRESS 560 */ -extern int errno; /* not defined in errno.h on some systems */ - static Window ImageWindow= 0; static Window ViewportWin= 0; static Colormap ImageColormap; debian/patches/24_libtiff5.patch0000644000000000000000000000144012221757255013656 0ustar Description: Prepare for build against libtiff5 TIFFHeader has changed to TIFFHeaderClassic for the standard TIFF files xloadimage supports; this might allow us to implement BigTIFF support as well. Author: Dominik George Forwarded: no --- a/tiff.c +++ b/tiff.c @@ -34,14 +34,14 @@ static TIFF *is_tiff(fullname, name, inf struct tiff_info *info; { ZFILE *zf; - TIFFHeader th; + TIFFHeaderClassic th; TIFF *tiff; zf = zopen(fullname); /* read TIFF header and see if it looks right */ - if ((zread(zf, (byte *)&th, sizeof(TIFFHeader)) == sizeof(TIFFHeader)) && + if ((zread(zf, (byte *)&th, sizeof(TIFFHeaderClassic)) == sizeof(TIFFHeaderClassic)) && ((th.tiff_magic == TIFF_BIGENDIAN) || (th.tiff_magic == TIFF_LITTLEENDIAN))) { debian/patches/08_manpage-config-path.patch0000755000000000000000000000134711741321713015762 0ustar From: Austin Donnelly Subject: Correct path for system-wide configuration file in manpage. diff -urNad 08.xloadimage.tmp/xloadimage.man 08.xloadimage/xloadimage.man --- 08.xloadimage.tmp/xloadimage.man 2003-04-02 23:43:14.000000000 +0100 +++ 08.xloadimage/xloadimage.man 2003-04-02 23:42:26.000000000 +0100 @@ -633,7 +633,7 @@ xloadimage - the image loader and viewer xsetbg - pseudonym which quietly sets the background xview - pseudonym which views in a window -/usr/lib/X11/Xloadimage - default system-wide configuration file +/etc/X11/Xloadimage - default system-wide configuration file ~/.xloadimagerc - user's personal configuration file .in -5 .fi debian/patches/11_fork-implies-quiet.patch0000644000000000000000000000067711741321713015677 0ustar From: Jens Peter Secher Subject: Make -fork imply -quiet as documented. diff -urNad 11.xloadimage.tmp/options.c 11.xloadimage/options.c --- 11.xloadimage.tmp/options.c 2003-04-05 14:13:53.000000000 +0100 +++ 11.xloadimage/options.c 2003-04-05 14:13:30.000000000 +0100 @@ -551,6 +551,7 @@ optionName(FORK)); continue; #else + killOption(global_options, VERBOSE); global_opt= 1; break; #endif debian/patches/09_xloadimagerc-path.patch0000755000000000000000000000125311741321713015543 0ustar From: Austin Donnelly Subject: Include ~images in path for system-wide configuration file. diff -urNad 09.xloadimage.tmp/xloadimagerc 09.xloadimage/xloadimagerc --- 09.xloadimage.tmp/xloadimagerc 1993-10-21 22:30:32.000000000 +0100 +++ 09.xloadimage/xloadimagerc 2003-04-02 23:44:16.000000000 +0100 @@ -1,6 +1,9 @@ # Sample .xloadimagerc file -path = /usr/local/images +# Directories to search for images +path = ~/images /usr/local/images + +# Default extensions to try tacking onto the end of a filename, in order extension = .niff # NIFF image .jpg .jpeg # JPEG image .gif # CompuServe GIF image debian/patches/20_patch.patch0000644000000000000000000000213311744043132013234 0ustar From: Austin Donnelly Subject: Check libpng version and call right function --- a/png.c 2011-06-08 10:28:55.000000000 +0900 +++ b/png.c 2011-06-08 10:32:20.000000000 +0900 @@ -75,7 +75,11 @@ { debug(" #error "); output_warn( png_ptr, str); +#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 + longjmp(png_jmpbuf((png_ptr)),1); +#else longjmp(png_ptr->jmpbuf, 1); /* return control to outer routine */ +#endif } @@ -164,7 +168,11 @@ png_destroy_read_struct(png_pp, info_pp, end_pp); return 0; } +#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 + if (setjmp(png_jmpbuf(*png_pp))) { +#else if (setjmp((*png_pp)->jmpbuf)) { +#endif /* On error */ png_destroy_read_struct(png_pp, info_pp, end_pp); return 0; @@ -220,7 +228,12 @@ zclose(zinput_file); return 0; } + +#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 + if (setjmp(png_jmpbuf(png_ptr))) { +#else if (setjmp(png_ptr->jmpbuf)) { +#endif /* On error */ freeImage(image); png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); debian/patches/26_uufilter-implicit-declaration.patch0000644000000000000000000000040512221757255020106 0ustar Description: Include stdlib.h to declare exit() Author: Dominik George Forwarded: no --- a/uufilter.c +++ b/uufilter.c @@ -12,6 +12,7 @@ #include #include +#include int main(argc, argv) int argc; debian/patches/29_fix-manpage-hyphens.patch0000644000000000000000000007073412221764503016035 0ustar Description: Use explicit hyphens/minus signs in man page to allow for copy&pasting options in Unicode environments. Author: Dominik George Forwarded: no --- a/uufilter.man +++ b/uufilter.man @@ -2,7 +2,7 @@ .SH NAME uufilter - decode uuencoded files to stdout .SH SYNOPSIS -\fIuufilter\fR [-f \fIoutfilename\fR] [-l] [-s] [-v] [\fIinfilename\fR] +\fIuufilter\fR [\-f \fIoutfilename\fR] [\-l] [\-s] [\-v] [\fIinfilename\fR] .SH DESCRIPTION \fIUufilter\fR is a "smart" uuencoded file decoder that can optionally dump the file to stdout. @@ -16,19 +16,19 @@ without stripping off the headers or oth content. .SH OPTIONS .TP 8 --f \fIfilename\fR +\-f \fIfilename\fR Dump output to \fIfilename\fR rather than the name specified in the uuencoded file. .TP --l +\-l Lenient mode. This is useful if passed through a mailer that adds trailing spaces. .TP --s +\-s Dump output to stdout rather than to the filename indicated in the uuencoded file. .TP --v +\-v Verbose mode; talks about what's going on. .SH AUTHOR Jim Frost (jimf@centerline.com) --- a/xloadimage.man +++ b/xloadimage.man @@ -9,7 +9,7 @@ the root window .SH DESCRIPTION \fIXloadimage\fR displays images in an X11 window, loads them onto the root window, or writes them into a file. Many image types are -recognized; use the \fI-supported\fR option to list them. +recognized; use the \fI\-supported\fR option to list them. .PP If the filename \fIstdin\fR is given, xloadimage will read the image from standard input if this capability is supported by the loader for @@ -18,38 +18,38 @@ that image type (most types do support r If the destination display cannot support the number of colors in the image, the image will be dithered (monochrome destination) or have its colormap reduced (color destination) as appropriate. This can also be -done forcibly with the \fI-halftone\fR, \fI-dither\fR, and -\fI-colors\fR options. +done forcibly with the \fI\-halftone\fR, \fI\-dither\fR, and +\fI\-colors\fR options. .PP A variety of image manipulations can be specified, including gamma -correction, brightening, clipping, dithering, depth-reduction, +correction, brightening, clipping, dithering, depth\(hyreduction, rotation, and zooming. Most of these manipulations have simple implementations; speed was opted for above accuracy. .PP If you are viewing a large image in a window, the initial window will be at most 90% of the size of the display unless the window manager does not correctly handle window size requests or if you've used the -\fI-fullscreen\fR option. You may move the image around in the window +\fI\-fullscreen\fR option. You may move the image around in the window by dragging with the first mouse button. The cursor will indicate which directions you may drag, if any. You may exit the window by typing 'q' or '^C' when the keyboard focus is on the window. .PP If more than one image file is specified on the command line, each -image will be shown in order (except if \fI-merge\fR or \fI-goto\fR +image will be shown in order (except if \fI\-merge\fR or \fI\-goto\fR are being used). .PP A wide variety of common image manipulations can be done by mixing and matching the available options. See the section entitled \fIHINTS FOR GOOD IMAGE DISPLAYS\fR for some ideas. .PP -The \fI-dump\fR option causes an image to be written to a file rather +The \fI\-dump\fR option causes an image to be written to a file rather than displayed after processing. This allows you to read an image, perform a number of processing operations on it, and save the resultant image. This also allows translation from any of the recognized image types into any of the formats that support dumping. .PP -\fIXsetbg\fR is equivalent to \fIxloadimage -onroot -quiet\fR and -\fIxview\fR is equivalent to \fIxloadimage -view -verbose\fR. +\fIXsetbg\fR is equivalent to \fIxloadimage \-onroot \-quiet\fR and +\fIxview\fR is equivalent to \fIxloadimage \-view \-verbose\fR. .SH RESOURCE CLASS \fIXloadimage\fR uses the resource class name \fIXloadimage\fR for window managers which need this resource set. This name changed @@ -59,58 +59,58 @@ in version 2.00 and 2.01; some previous .SH GLOBAL OPTIONS The following options affect the global operation of \fIxloadimage\fR. They may be specified anywhere on the command line. Additionally the -\fI-global\fR option can be used to force an image option to apply to +\fI\-global\fR option can be used to force an image option to apply to all images. .TP 8 --border \fIcolor\fR +\-border \fIcolor\fR This sets the background portion of the window which is not covered by any images to be \fIcolor\fR. .TP --configuration +\-configuration Displays the image path, image suffixes, and supported filters which will be used when looking for and reading images. These are loaded from ~/.xloadimagerc and optionally from a systemwide file (normally -/usr/lib/xloadimagerc). This replaces the -path option. +/usr/lib/xloadimagerc). This replaces the \-path option. .TP --default +\-default Use the default root weave as the image. This option forces -\fI-onroot\fR. If \fI-default\fR is used alone, it is the same as +\fI\-onroot\fR. If \fI\-default\fR is used alone, it is the same as \fIxsetroot\fR with no arguments. If used in conjunction with -\fI-tile\fR this option can be used to place images on the default +\fI\-tile\fR this option can be used to place images on the default root weave (see \fBEXAMPLES\fR below). .TP --debug +\-debug Talk to the X server in synchronous mode. This is useful for debugging. If an X error is seen while in this mode, a core will be dumped. .TP --display \fIdisplay_name\fR +\-display \fIdisplay_name\fR X11 display name to send the image(s) to. .TP --dump \fIimage_type[,option[=value]]\fR \fIdump_file\fR +\-dump \fIimage_type[,option[=value]]\fR \fIdump_file\fR Rather than displaying the loaded and processed image, dump it into an image file of the specified type. For a list of image types that can -be dumped, use the \fI-supported\fR option. Some image types have +be dumped, use the \fI\-supported\fR option. Some image types have options that affect the format of the file that's created. See \fBDUMP OPTIONS\fR below. An image can be dumped in any supported dump format regardless of the original image type, so image file type translation is possible using this option. .TP --fit +\-fit Force image to use the default visual and colormap. This is useful if you do not want technicolor effects when the colormap focus is inside the image window, but it may reduce the quality of the displayed -image. This is on by default if -onroot or -windowid is specified. +image. This is on by default if \-onroot or \-windowid is specified. .TP --fork +\-fork Fork xloadimage. This causes xloadimage to disassociate itself from -the shell. This option automatically turns on -quiet. +the shell. This option automatically turns on \-quiet. .TP --fullscreen -Use the entire screen to display images. If combined with -onroot, +\-fullscreen +Use the entire screen to display images. If combined with \-onroot, the image will be zoomed to fill the entire rootwindow. .TP --geometry \fIWxH[{+-X}{+-}Y]\fR +\-geometry \fIWxH[{+\-X}{+\-}Y]\fR This sets the size of the window onto which the images are loaded to a different value than the size of the image. When viewing an image in a window, this can be used to reduce the size of the destination @@ -119,226 +119,226 @@ controls the size of the pixmap which wi If the size is smaller than that of the display, the image will be replicated. .TP --goto image_name +\-goto image_name Forces the next image to be displayed to be the image named \fIimage_name\fR. This is useful for generating looped slideshows. If more than one image of the same name as the target exists on the argument list, the first in the argument list is used. .TP --help [option ...] +\-help [option ...] Give information on an option or list of options. If no option is given, a simple interactive help facility is invoked. .TP --identify +\-identify Identify the supplied images rather than display them. .TP --install +\-install Forcibly install the image's colormap when the window is focused. This violates ICCCM standards and only exists to allow operation with naive window managers. Use this option only if your window manager does not install colormaps properly. .TP --list +\-list List the images which are along the image path. .TP --onroot +\-onroot Load image(s) onto the root window instead of viewing in a window. -This option automatically sets the -fit option. -This is the opposite of \fI-view\fR. \fIXSetbg\fR has this option set +This option automatically sets the \-fit option. +This is the opposite of \fI\-view\fR. \fIXSetbg\fR has this option set by default. .TP --path +\-path Displays miscellaneous information about the program configuration. -This option is obsolete and has been replaced by -configuration. +This option is obsolete and has been replaced by \-configuration. .TP --pixmap -Force the use of a pixmap as backing-store. This is provided for -servers where backing-store is broken (such as some versions of the +\-pixmap +Force the use of a pixmap as backing\(hystore. This is provided for +servers where backing\(hystore is broken (such as some versions of the AIXWindows server). It may improve scrolling performance on servers -which provide backing-store. +which provide backing\(hystore. .TP --private +\-private Force the use of a private colormap. Normally colors are allocated shared unless there are not enough colors available. .TP --quiet +\-quiet Forces \fIxloadimage\fR and \fIxview\fR to be quiet. This is the default for \fIxsetbg\fR, but the others like to whistle. .TP --supported +\-supported List the supported image types. .TP --type \fItype_name\fR +\-type \fItype_name\fR Forces \fIxloadimage\fR to try to load the image as a particular file type rather than trying to guess. This often improves load performance noticeably. .TP --verbose +\-verbose Causes \fIxloadimage\fR to be talkative, telling you what kind of image it's playing with and any special processing that it has to do. This is the default for \fIxview\fR and \fIxloadimage\fR. .TP --version +\-version Print the version number and patchlevel of this version of \fIxloadimage\fR. .TP --view -View image(s) in a window. This is the opposite of \fI-onroot\fR and +\-view +View image(s) in a window. This is the opposite of \fI\-onroot\fR and the default for \fIxview\fR and \fIxloadimage\fR. .TP --visual \fIvisual_name\fR +\-visual \fIvisual_name\fR Force the use of a specific visual type to display an image. Normally \fIxloadimage\fR tries to pick the best available image for a particular image type. The available visual types are: DirectColor, TrueColor, PseudoColor, StaticColor, GrayScale, and StaticGray. Nonconflicting names may be abbreviated and case is ignored. .TP --windowid \fIhex_window_id\fR +\-windowid \fIhex_window_id\fR Sets the background pixmap of a particular window ID. The argument must be in hexadecimal and must be preceded by "0x" (\fIeg\fR --windowid 0x40000b. This is intended for setting the background +\-windowid 0x40000b. This is intended for setting the background pixmap of some servers which use untagged virtual roots (\fIeg\fR HP-VUE), but can have other interesting applications. .SH IMAGE OPTIONS The following options may precede each image. These options are local to the image they precede. .TP --at \fIX\fR,\fIY\fR +\-at \fIX\fR,\fIY\fR Indicates coordinates to load the image at on the base image. If -this is an option to the first image, and the \fI-onroot\fR option is +this is an option to the first image, and the \fI\-onroot\fR option is specified, the image will be loaded at the given location on the display background. .TP --background \fIcolor\fR +\-background \fIcolor\fR Use \fIcolor\fR as the background color instead of the default (usually white but this depends on the image type) if you are transferring a monochrome image to a color display. .TP --brighten \fIpercentage\fR +\-brighten \fIpercentage\fR Specify a percentage multiplier for a color image's colormap. A value of more than 100 will brighten an image, one of less than 100 will darken it. .TP --center +\-center Center the image on the base image loaded. If this is an option to the first image, and the \fI-onroot\fR option is specified, the image will be centered on the display background. .TP --clip \fIX\fR,\fIY\fR,\fIW\fR,\fIH\fR +\-clip \fIX\fR,\fIY\fR,\fIW\fR,\fIH\fR Clip the image before loading it. \fIX\fR and \fIY\fR define the -upper-left corner of the clip area, and \fIW\fR and \fIH\fR define the +upper\(hyleft corner of the clip area, and \fIW\fR and \fIH\fR define the extents of the area. A zero value for \fIW\fR or \fIH\fR will be interpreted as the remainder of the image. .TP --colors \fIn\fR +\-colors \fIn\fR Specify the maximum number of colors to use in the image. This is a way to forcibly reduce the depth of an image. .TP --delay \fIsecs\fR +\-delay \fIsecs\fR Automatically advance to the next image after \fIsecs\fR seconds. You -may want to use the \fI-global\fR switch with this command to create a +may want to use the \fI\-global\fR switch with this command to create a slideshow with multiple images. .TP --dither -Dither a color image to monochrome using a Floyd-Steinberg dithering +\-dither +Dither a color image to monochrome using a Floyd\(hySteinberg dithering algorithm. This happens by default when viewing color images on a -monochrome display. This is slower than \fI-halftone\fR and affects +monochrome display. This is slower than \fI\-halftone\fR and affects the image accuracy but usually looks much better. .TP --foreground \fIcolor\fR +\-foreground \fIcolor\fR Use \fIcolor\fR as the foreground color instead of black if you are transferring a monochrome image to a color display. This can also be used to invert the foreground and background colors of a monochrome image. .TP --gamma \fIdisplay_gamma\fR +\-gamma \fIdisplay_gamma\fR Specify the gamma correction for the display. The default value is 1.0, a typical display needs 2.0 to 2.5. .TP --global +\-global Force the following option to apply to all images rather than one specific image. Local image options will temporarily override any -option specified with -global. +option specified with \-global. .TP --gray +\-gray Convert an image to grayscale. This is very useful when displaying colorful images on servers with limited color capability. It can also be used to convert a bitmap image into a grayscale image, although the resulting image will be smaller than the original. The optional -spelling \fI-grey\fR may also be used. +spelling \fI\-grey\fR may also be used. .TP --halftone +\-halftone Force halftone dithering of a color image when displaying on a monochrome display. This option is ignored on monochrome images. This dithering algorithm blows an image up by sixteen times; if you -don't like this, the \fI-dither\fR option will not blow the image up +don't like this, the \fI\-dither\fR option will not blow the image up but will take longer to process and will be less accurate. .TP --idelay \fIsecs\fR +\-idelay \fIsecs\fR This option is no longer supported due to the addition of -\fI-global\fR. The same functionality can be had with \fI-delay\fR. +\fI\-global\fR. The same functionality can be had with \fI\-delay\fR. .TP --invert -Inverts a monochrome image. This is shorthand for \fI-foreground -white -background black\fR. +\-invert +Inverts a monochrome image. This is shorthand for \fI\-foreground +white \-background black\fR. .TP --merge +\-merge Merge this image onto the base image after local processing. The base image is considered to be the first image specified or the last image -that was not preceded by \fI-merge\fR. If used in conjunction with -\fI-at\fR and \fI-clip\fR, very complex images can be built up. This -option is on by default for all images if the \fI-onroot\fR or -\fI-windowid\fR options are specified. +that was not preceded by \fI\-merge\fR. If used in conjunction with +\fI\-at\fR and \fI\-clip\fR, very complex images can be built up. This +option is on by default for all images if the \fI\-onroot\fR or +\fI\-windowid\fR options are specified. .TP --name \fIimage_name\fR +\-name \fIimage_name\fR Force the next argument to be treated as an image name. This is -useful if the name of the image is \fI-dither\fR, for instance. +useful if the name of the image is \fI\-dither\fR, for instance. .TP --newoptions +\-newoptions Reset globally-specified options. .TP --normalize +\-normalize Normalize a color image. .TP --rotate \fIdegrees\fR +\-rotate \fIdegrees\fR Rotate the image by \fIdegrees\fR clockwise. The number must be a multiple of 90. .TP --shrink +\-shrink Shrink an image down to fit on the display. This is particularly useful with servers that do not support window sizes larger than the physical screen (eg DECWINDOWS servers). .TP --smooth +\-smooth Smooth a color image. This reduces blockiness after zooming an image up. If used on a monochrome image, nothing happens. This option can take awhile to perform, especially on large images. You may specify -more than one \fI-smooth\fR option per image, causing multiple +more than one \fI\-smooth\fR option per image, causing multiple iterations of the smoothing algorithm. .TP --tile +\-tile Tile this image (after any necessary merging or tiling) to create a fullscreen image. This is usually used to create a large background -image on which to merge other images. \fI-geometry\fR can be used to -set the new image size to something other than -fullscreen. +image on which to merge other images. \fI\-geometry\fR can be used to +set the new image size to something other than \-fullscreen. .TP --title \fItitle\fR +\-title \fItitle\fR Change the title of the image. This sets the title bar title if displaying in a window or the NIFF file image title if dumping the image. .TP --xzoom \fIpercentage\fR +\-xzoom \fIpercentage\fR Zoom the X axis of an image by \fIpercentage\fR. A number greater than 100 will expand the image, one smaller will compress it. A zero -value will be ignored. This option, and the related \fI-yzoom\fR are +value will be ignored. This option, and the related \fI\-yzoom\fR are useful for correcting the aspect ratio of images to be displayed. .TP --yzoom \fIpercentage\fR -Zoom the Y axis of an image by \fIpercentage\fR. See \fI-xzoom\fR for +\-yzoom \fIpercentage\fR +Zoom the Y axis of an image by \fIpercentage\fR. See \fI\-xzoom\fR for more information. .TP --zoom \fIpercentage\fR -Zoom both the X and Y axes by \fIpercentage\fR. See \fI-xzoom\fR for +\-zoom \fIpercentage\fR +Zoom both the X and Y axes by \fIpercentage\fR. See \fI\-xzoom\fR for more information. Technically the percentage actually zoomed is the square of the number supplied since the zoom is to both axes, but I opted for consistency instead of accuracy. @@ -347,80 +347,80 @@ To load the rasterfile "my.image" onto t it to fill the entire background: .sp .ti +5 -xloadimage -onroot my.image +xloadimage \-onroot my.image .PP To center an image on the default root background: .sp .ti +5 -xloadimage -default -tile my.image +xloadimage \-default \-tile my.image .sp If using a monochrome display and a color image you will probably want to dither the image for a cleaner (and faster) display: .sp .ti +5 -xloadimage -default -tile -dither my.image +xloadimage \-default \-tile \-dither my.image .PP To load a monochrome image "my.image" onto the background, using red as the foreground color, replicate the image, and overlay "another.image" onto it at coordinate (10,10): .sp .ti +5 -xloadimage -foreground red my.image -at 10,10 another.image +xloadimage \-foreground red my.image \-at 10,10 another.image .PP To center the rectangular region from 10 to 110 along the X axis and from 10 to the height of the image along the Y axis: .sp .ti +5 -xloadimage -center -clip 10,10,100,0 my.image +xloadimage \-center \-clip 10,10,100,0 my.image .PP To double the size of an image: .sp .ti +5 -xloadimage -zoom 200 my.image +xloadimage \-zoom 200 my.image .PP To halve the size of an image: .sp .ti +5 -xloadimage -zoom 50 my.image +xloadimage \-zoom 50 my.image .PP To brighten a dark image: .sp .ti +5 -xloadimage -brighten 150 my.image +xloadimage \-brighten 150 my.image .PP To darken a bright image: .sp .ti +5 -xloadimage -brighten 50 my.image +xloadimage \-brighten 50 my.image .SH HINTS FOR GOOD IMAGE DISPLAYS Since images are likely to come from a variety of sources, they may be in a variety of aspect ratios which may not be supported by your -display. The \fI-xzoom\fR and \fI-yzoom\fR options can be used to +display. The \fI\-xzoom\fR and \fI\-yzoom\fR options can be used to change the aspect ratio of an image before display. If you use these options, it is recommended that you increase the size of one of the dimensions instead of shrinking the other, since shrinking looses detail. For instance, many GIF and G3 FAX images have an X:Y ratio of about 2:1. You can correct this for viewing on a 1:1 display with -either \fI-xzoom 50\fR or \fI-yzoom 200\fR (reduce X axis to 50% of +either \fI\-xzoom 50\fR or \fI\-yzoom 200\fR (reduce X axis to 50% of its size and expand Y axis to 200% of its size, respectively) but the latter should be used so no detail is lost in the conversion. .PP When zooming color images up you can reduce blockiness with -\fI-smooth\fR. For zooms of 300% or more, I recommend two smoothing +\fI\-smooth\fR. For zooms of 300% or more, I recommend two smoothing passes (although this can take awhile to do on slow machines). There will be a noticeable improvement in the image. .PP You can perform image processing on a small portion of an image by -loading the image more than once and using the \fI-merge\fR, \fI-at\fR -and \fI-clip\fR options. Load the image, then merge it with a +loading the image more than once and using the \fI\-merge\fR, \fI\-at\fR +and \fI\-clip\fR options. Load the image, then merge it with a clipped, processed version of itself. To brighten a 100x100 rectangular portion of an image located at (50,50), for instance, you could type: .sp .ti +5 -xloadimage my.image -merge -at 50,50 -clip 50,50,100,100 -brighten 150 my.image +xloadimage my.image \-merge \-at 50,50 \-clip 50,50,100,100 \-brighten 150 my.image .PP If you're using a display with a small colormap to display colorful -images, try using the \fI-gray\fR option to convert to grayscale. +images, try using the \fI\-gray\fR option to convert to grayscale. .SH PATHS AND EXTENSIONS The file ~/.xloadimagerc (and optionally a system-wide file) defines a number of configuration options that affect xloadimage. @@ -472,19 +472,19 @@ provided for compressed (.Z) files and G \fBFILTERS\fR section for more information on defining your own filters. .PP -Any text on a line following a hash-mark (#) is ignored; if you wish -to use a hash-mark in a path, extension, or filter you can escape it +Any text on a line following a hash\(hymark (#) is ignored; if you wish +to use a hash\(hymark in a path, extension, or filter you can escape it using a backslash (\\). .PP If you wish to include white-space in a filter program name, path, or -extension you can enclose the entire text in double-quotes. For +extension you can enclose the entire text in double\(hyquotes. For example: .PP .nf - filter = "gzip -cd" .gz + filter = "gzip \-cd" .gz .fi .PP -Use backslash (\\) characters to allow inclusion of double-quote marks +Use backslash (\\) characters to allow inclusion of double\(hyquote marks or newlines. .PP The following is a sample ~/.xloadimagerc file: @@ -499,7 +499,7 @@ The following is a sample ~/.xloadimager extension = .csun .msun .sun .face .xbm .bm # invoke GNU zip if a .z or .zip extension is found - filter = "gzip -cd" .z .zip + filter = "gzip \-cd" .z .zip .fi .PP @@ -507,7 +507,7 @@ The following is a sample ~/.xloadimager .PP \fIXloadimage\fR currently supports many common and some uncommon image types, and can create images in several formats. For a complete -list use the \fI-supported\fR option. +list use the \fI\-supported\fR option. .SH DUMPING IMAGES Several image dumpers are included that can be used to create a new image after loading and processing. The NIFF (Native Image File @@ -518,12 +518,12 @@ format. Some image dumpers allow options that affect the image output. These options are appended to the image type following a comma and are separated by commas. If a value is desired it can be specified -following an equals-sign. For example, to create a monochrome JPEG +following an equals\(hysign. For example, to create a monochrome JPEG image file with a quality factor of 80, you would use the following command line: .PP .nf - xloadimage image_name -dump jpeg,quality=80,grayscale new_image.jpg + xloadimage image_name \-dump jpeg,quality=80,grayscale new_image.jpg .fi .PP Option names can be abbreviated but if the abbreviation is too short @@ -537,20 +537,20 @@ The xloadimage distribution includes a s called \fIuufilter\fR that can be used to automatically uudecode files for processing. \fIUufilter\fR ignores extraneous lines in the file so it is particularly useful if the uuencoded file was created by -concatenating email or news postings that had headers or line-break +concatenating email or news postings that had headers or line\(hybreak indicators included. .PP To make use of \fIuufilter\fR you can add the following to your \fI.xloadimagerc\fR file: .PP .nf - filter = "uufilter -s" .uu .uue + filter = "uufilter \-s" .uu .uue .fi The filter will be automatically invoked on any file with a .uu or \&.uue extension. .PP For a list of filters automatically recognized by xloadimage use the -\fI-configuration\fR option. +\fI\-configuration\fR option. .PP .SH SUPPORTED IMAGE OPTIONS .PP @@ -564,7 +564,7 @@ Force a monochrome (grayscale) image to image. .TP nointerleave -Create a non-interleaved file. +Create a non\(hyinterleaved file. .TP optimize Enable entropy parameter optimization. @@ -604,9 +604,9 @@ Image data compression technique. Can b \fIrle\fR (CCITT RLE compression), \fIg3fax\fR (CCITT Group 3 FAX compression), \fIg4fax\fR (CCITT Group 4 FAX compression), -\fIlzw\fR (Limpel-Ziv-Welsh compression, the default), +\fIlzw\fR (Limpel\(hyZiv\(hyWelsh compression, the default), \fIjpeg\fR (JPEG compression), -\fInext\fR (NeXT run-length compression), +\fInext\fR (NeXT run\(hylength compression), \fIrlew\fR (CCITT RLEW compression), \fImac\fR (Macintosh PackBits compression), \fIpackbits\fR (same as \fImac\fR), @@ -624,17 +624,17 @@ CenterLine Software jimf@centerline.com .fi .PP -For a more-or-less complete list of other contributors (there are a +For a more\(hyor\(hyless complete list of other contributors (there are a \fIlot\fR of them), please see the README file enclosed with the distribution. .SH FILES .nf .in +5 -xloadimage - the image loader and viewer -xsetbg - pseudonym which quietly sets the background -xview - pseudonym which views in a window -/etc/X11/Xloadimage - default system-wide configuration file -~/.xloadimagerc - user's personal configuration file +xloadimage \- the image loader and viewer +xsetbg \- pseudonym which quietly sets the background +xview \- pseudonym which views in a window +/etc/X11/Xloadimage \- default system-wide configuration file +~/.xloadimagerc \- user's personal configuration file .in -5 .fi .SH COPYRIGHT @@ -662,7 +662,7 @@ file, but \fIxloadimage\fR will only dis Only GIF87a format is supported. .PP One of the pseudonyms for \fIxloadimage\fR, \fIxview\fR, is the same -name as Sun uses for their SunView-under-X package. This will be +name as Sun uses for their SunView\(hyunder\(hyX package. This will be confusing if you're one of those poor souls who has to use Sun's XView. .PP @@ -674,7 +674,7 @@ screen, something which is normally avoi also ignore the MaxSize argument's real function, to limit the maximum size of the window, and allow the window to be resized larger than the image. If this happens, \fIxloadimage\fR merely places the image in -the upper-left corner of the window and uses the zero-value'ed pixel +the upper\(hyleft corner of the window and uses the zero\(hyvalue'ed pixel for any space which is not covered by the image. This behavior is -less-than-graceful but so are window managers which are cruel enough +less\(hythan\(hygraceful but so are window managers which are cruel enough to ignore such details. debian/patches/07_SYSPATHFILE.patch0000644000000000000000000000071611741321713013743 0ustar From: James Troup Subject: Define SYSPATHFILE during build. diff -urNad 07.xloadimage.tmp/Makefile.in 07.xloadimage/Makefile.in --- 07.xloadimage.tmp/Makefile.in 2003-04-02 23:40:49.000000000 +0100 +++ 07.xloadimage/Makefile.in 2003-04-02 23:40:15.000000000 +0100 @@ -3,7 +3,7 @@ # CC = @CC@ -DEFS = @DEFS@ +DEFS = @DEFS@ -DSYSPATHFILE=\"/etc/X11/Xloadimage\" CFLAGS = @CFLAGS@ XLIB = @X_LIBS@ -lX11 @X_EXTRA_LIBS@ LDFLAGS = @LDFLAGS@ debian/patches/22-include.patch0000644000000000000000000000050711742072720013506 0ustar From: Jari Aalto Subject: Add include for functions like strcat() etc. --- autoconfig.c | 1 + 1 file changed, 1 insertion(+) --- a/autoconfig.c +++ b/autoconfig.c @@ -5,6 +5,7 @@ * jim frost 09.05.93 */ +#include #include #include #include debian/patches/01_libjpeg-support.patch0000755000000000000000000037151711742064671015315 0ustar From: Yoshida Hiroshi Subject: Add support for libjpeg6b and other misc fixes. diff -urNad 01.xloadimage.tmp/Makefile.in 01.xloadimage/Makefile.in --- 01.xloadimage.tmp/Makefile.in 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/Makefile.in 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,51 @@ +# +# Makefile for autoconf tutorial +# + +CC = @CC@ +DEFS = @DEFS@ +CFLAGS = @CFLAGS@ +XLIB = @X_LIBS@ @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ + +SRCS = bright.c clip.c cmuwmraster.c compress.c config.c \ +dither.c faces.c fbm.c fill.c gif.c halftone.c imagetypes.c img.c jpeg.c \ +mac.c mc_tables.c mcidas.c merge.c misc.c new.c niff.c options.c \ +pbm.c pcx.c pdsuncomp.c reduce.c rle.c rlelib.c root.c rotate.c \ +send.c smooth.c sunraster.c tiff.c undither.c value.c vff.c \ +vicar.c window.c xbitmap.c xloadimage.c xpixmap.c xwd.c zio.c zoom.c + +OBJS = $(SRCS:.c=.o) +PROG = xloadimage + +all: $(PROG) uufilter + +$(PROG): $(OBJS) + ./build-info + $(CC) $(CFLAGS) -c $(DEFS) build.c + $(CC) -o $@ $(OBJS) build.o$(LDFLAGS) $(XLIB) $(LIBS) + +uufilter: uufilter.c + $(CC) $(CFLAGS) $(DEFS) uufilter.c -o $@ + +.c.o: config.h image.h + $(CC) $(CFLAGS) -c $(DEFS) $< + +build.c: + ./build-info +clean: + rm -f $(PROG) uufilter build.c *.o + +distclean: + make clean + rm -f config.log config.cache config.status config.h Makefile + +config.h.in: configure.in + autoheader + +configure: configure.in + autoconf + +Makefile: Makefile.in + ./configure diff -urNad 01.xloadimage.tmp/config.h.in 01.xloadimage/config.h.in --- 01.xloadimage.tmp/config.h.in 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/config.h.in 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,40 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* Define if you have the mkdir function. */ +#undef HAVE_MKDIR + +/* Define if you have the select function. */ +#undef HAVE_SELECT + +/* Define if you have the header file. */ +#undef HAVE_MALLOC_H + +/* Define if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the jpeg library (-ljpeg). */ +#undef HAVE_LIBJPEG + +/* Define if you have the m library (-lm). */ +#undef HAVE_LIBM + +/* Define if you have the tiff library (-ltiff). */ +#undef HAVE_LIBTIFF + +/* Define if you have the z library (-lz). */ +#undef HAVE_LIBZ diff -urNad 01.xloadimage.tmp/configure 01.xloadimage/configure --- 01.xloadimage.tmp/configure 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/configure 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,2357 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.12 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --with-x use the X Window System" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.12" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=xloadimage.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:529: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:558: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + ac_prog_rejected=no + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:606: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:640: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:645: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:669: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:698: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +# If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:763: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:830: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + cat >> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +echo "configure:1012: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +echo "configure:1077: checking for dnet_ntoa in -ldnet" >&5 +ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +echo "configure:1118: checking for dnet_ntoa in -ldnet_stub" >&5 +ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +echo "configure:1166: checking for gethostbyname" >&5 +if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +gethostbyname(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_gethostbyname=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:1215: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +echo "configure:1264: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_connect=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:1313: checking for connect in -lsocket" >&5 +ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:1356: checking for remove" >&5 +if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_remove) || defined (__stub___remove) +choke me +#else +remove(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_remove=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:1405: checking for remove in -lposix" >&5 +ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:1448: checking for shmat" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shmat) || defined (__stub___shmat) +choke me +#else +shmat(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shmat=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:1497: checking for shmat in -lipc" >&5 +ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lipc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +else + echo "$ac_t""no" 1>&6 +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS="$LDFLAGS" + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +echo "configure:1549: checking for IceConnectionNumber in -lICE" >&5 +ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$ac_save_LDFLAGS" + +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1593: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1606: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +for ac_hdr in malloc.h strings.h sys/time.h unistd.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1700: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 +echo "configure:1738: checking for main in -lm" >&5 +ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lm $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +echo $ac_n "checking for main in -lz""... $ac_c" 1>&6 +echo "configure:1781: checking for main in -lz" >&5 +ac_lib_var=`echo z'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lz $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo z | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +echo $ac_n "checking for main in -ljpeg""... $ac_c" 1>&6 +echo "configure:1824: checking for main in -ljpeg" >&5 +ac_lib_var=`echo jpeg'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ljpeg $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo jpeg | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + +echo $ac_n "checking for main in -ltiff""... $ac_c" 1>&6 +echo "configure:1867: checking for main in -ltiff" >&5 +ac_lib_var=`echo tiff'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ltiff $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo tiff | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + + + +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:1913: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:1935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 +echo "configure:1956: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.12" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@CC@%$CC%g +s%@CPP@%$CPP%g +s%@X_CFLAGS@%$X_CFLAGS%g +s%@X_PRE_LIBS@%$X_PRE_LIBS%g +s%@X_LIBS@%$X_LIBS%g +s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. And first: +# Protect against being on the right side of a sed subst in config.status. +# Protect against being in an unquoted here document in config.status. +rm -f conftest.vals +cat > conftest.hdr <<\EOF +s/[\\&%]/\\&/g +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >> conftest.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> $CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> $CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +cat >> $CONFIG_STATUS <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff -urNad 01.xloadimage.tmp/configure.in 01.xloadimage/configure.in --- 01.xloadimage.tmp/configure.in 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/configure.in 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,30 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(xloadimage.c) +AC_CONFIG_HEADER(config.h) + +dnl Checks for programs. +AC_PROG_CC + +dnl Checks for header files. +AC_PATH_XTRA +AC_HEADER_STDC +AC_CHECK_HEADERS(malloc.h strings.h sys/time.h unistd.h) + +dnl Checks for libraries. +dnl Replace `main' with a function in -lm: +AC_CHECK_LIB(m, main) +dnl Replace `main' with a function in -lz: +AC_CHECK_LIB(z, main) +dnl Replace `main' with a function in -ljpeg: +AC_CHECK_LIB(jpeg, main) +dnl Replace `main' with a function in -ltiff: +AC_CHECK_LIB(tiff, main) + + +dnl Checks for typedefs, structures, and compiler characteristics. + +dnl Checks for library functions. +AC_TYPE_SIGNAL +AC_CHECK_FUNCS(mkdir select) + +AC_OUTPUT(Makefile) diff -urNad 01.xloadimage.tmp/configure.scan 01.xloadimage/configure.scan --- 01.xloadimage.tmp/configure.scan 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/configure.scan 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,32 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(buildshar.c) + +dnl Checks for programs. +AC_PROG_CC + +dnl Checks for libraries. +dnl Replace `main' with a function in -lX11: +AC_CHECK_LIB(X11, main) +dnl Replace `main' with a function in -lXext: +AC_CHECK_LIB(Xext, main) +dnl Replace `main' with a function in -ljpeg: +AC_CHECK_LIB(jpeg, main) +dnl Replace `main' with a function in -lm: +AC_CHECK_LIB(m, main) +dnl Replace `main' with a function in -ltiff: +AC_CHECK_LIB(tiff, main) +dnl Replace `main' with a function in -lz: +AC_CHECK_LIB(z, main) + +dnl Checks for header files. +AC_PATH_X +AC_HEADER_STDC +AC_CHECK_HEADERS(malloc.h strings.h sys/time.h unistd.h) + +dnl Checks for typedefs, structures, and compiler characteristics. + +dnl Checks for library functions. +AC_TYPE_SIGNAL +AC_CHECK_FUNCS(mkdir select) + +AC_OUTPUT(Makefile) diff -urNad 01.xloadimage.tmp/fbm.c 01.xloadimage/fbm.c --- 01.xloadimage.tmp/fbm.c 1993-10-21 22:28:37.000000000 +0100 +++ 01.xloadimage/fbm.c 2003-04-03 00:11:28.000000000 +0100 @@ -45,12 +45,12 @@ static int fbmin_img_rowlen; /* length of one row of data */ static int fbmin_img_plnlen; /* length of one plane of data */ static int fbmin_img_clrlen; /* length of the colormap */ -static int fbmin_img_aspect; /* image aspect ratio */ +static double fbmin_img_aspect; /* image aspect ratio */ static int fbmin_img_physbits; /* physical bits per pixel */ static char *fbmin_img_title; /* name of image */ static char *fbmin_img_credit; /* credit for image */ -static fbmin_image_test() +static int fbmin_image_test() { if (fbmin_img_width < 1 || fbmin_img_width > 32767) { fprintf (stderr, "Invalid width (%d) on input\n", fbmin_img_width); @@ -93,7 +93,7 @@ } if (fbmin_img_aspect < 0.01 || fbmin_img_aspect > 100.0) { - fprintf (stderr, "Invalid aspect ratio %lg on input\n", + fprintf (stderr, "Invalid aspect ratio %1.3f on input\n", fbmin_img_aspect); return FBMIN_ERR_BAD_SD; } @@ -133,7 +133,7 @@ fbmin_img_rowlen = atoi(phdr.rowlen); fbmin_img_plnlen = atoi(phdr.plnlen); fbmin_img_clrlen = atoi(phdr.clrlen); - fbmin_img_aspect = atoi(phdr.aspect); + fbmin_img_aspect = atof(phdr.aspect); fbmin_img_physbits = atoi(phdr.physbits); fbmin_img_title = phdr.title; fbmin_img_credit = phdr.credits; diff -urNad 01.xloadimage.tmp/image.h 01.xloadimage/image.h --- 01.xloadimage.tmp/image.h 1993-10-28 18:14:56.000000000 +0000 +++ 01.xloadimage/image.h 2003-04-03 00:11:28.000000000 +0100 @@ -8,6 +8,10 @@ * copyright information. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "copyright.h" #include diff -urNad 01.xloadimage.tmp/imagetypes.c 01.xloadimage/imagetypes.c --- 01.xloadimage.tmp/imagetypes.c 1993-10-28 16:35:18.000000000 +0000 +++ 01.xloadimage/imagetypes.c 2003-04-03 00:11:28.000000000 +0100 @@ -17,6 +17,7 @@ /* SUPPRESS 560 */ extern int errno; +extern int findImage(char *name, char *fullname); /* load a named image */ diff -urNad 01.xloadimage.tmp/imagetypes.h 01.xloadimage/imagetypes.h --- 01.xloadimage.tmp/imagetypes.h 1993-10-27 14:25:04.000000000 +0000 +++ 01.xloadimage/imagetypes.h 2003-04-03 00:11:28.000000000 +0100 @@ -28,10 +28,10 @@ #else Image *vicarLoad(); #endif -#ifdef HAS_JPEG +#ifdef HAVE_LIBJPEG Image *jpegLoad(); #endif -#ifdef HAS_TIFF +#ifdef HAVE_LIBTIFF Image *tiffLoad(); #endif @@ -56,18 +56,18 @@ #else int vicarIdent(); #endif -#ifdef HAS_JPEG +#ifdef HAVE_LIBJPEG int jpegIdent(); #endif -#ifdef HAS_TIFF +#ifdef HAVE_LIBTIFF int tiffIdent(); #endif void niffDump(); -#ifdef HAS_JPEG +#ifdef HAVE_LIBJPEG void jpegDump(); #endif -#ifdef HAS_TIFF +#ifdef HAVE_LIBTIFF void tiffDump(); #endif void pbmDump(); @@ -85,10 +85,10 @@ niffIdent, niffLoad, niffDump, "niff", "Native Image File Format (NIFF)", sunRasterIdent, sunRasterLoad, NULL, "sunraster", "Sun Rasterfile", gifIdent, gifLoad, NULL, "gif", "GIF Image", -#ifdef HAS_JPEG +#ifdef HAVE_LIBJPEG jpegIdent, jpegLoad, jpegDump, "jpeg", "JFIF-style JPEG Image", #endif -#ifdef HAS_TIFF +#ifdef HAVE_LIBTIFF tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image", #endif fbmIdent, fbmLoad, NULL, "fbm", "FBM Image", diff -urNad 01.xloadimage.tmp/img.c 01.xloadimage/img.c --- 01.xloadimage.tmp/img.c 1993-10-28 16:18:15.000000000 +0000 +++ 01.xloadimage/img.c 2003-04-03 00:11:28.000000000 +0100 @@ -413,7 +413,7 @@ char *name; { ZFILE *file; - Image *image; + Image *image = NULL; unsigned long w, h, nplanes, headlength, scanwidth; int colors; long i, dummy; @@ -632,9 +632,9 @@ { void transferRGBMap(); ZFILE *file; - Image *image; + Image *image = NULL; unsigned long w, h, nplanes, scanwidth; - int i, color, colors; + int color, colors; struct RGB_LIST { unsigned int red; diff -urNad 01.xloadimage.tmp/install-sh 01.xloadimage/install-sh --- 01.xloadimage.tmp/install-sh 1970-01-01 01:00:00.000000000 +0100 +++ 01.xloadimage/install-sh 2003-04-03 00:11:28.000000000 +0100 @@ -0,0 +1,238 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff -urNad 01.xloadimage.tmp/jpeg.c 01.xloadimage/jpeg.c --- 01.xloadimage.tmp/jpeg.c 1993-11-08 18:36:03.000000000 +0000 +++ 01.xloadimage/jpeg.c 2003-04-03 00:13:08.000000000 +0100 @@ -4,509 +4,314 @@ * free JPEG software. See jpeg.README for more information. * * This code is based on example.c from the IJG v4 distribution. + * 1998/08/19: Change for IJG v6.0a. dump Progressive JPEG support. */ #include "image.h" /* xloadimage declarations */ -#include "jpeg.conf.h" /* definitions used in jpeg directory */ -#include "jpeg/jinclude.h" /* IJG declarations */ +#ifdef HAVE_LIBJPEG +#include "options.h" +#include +#include #include /* need setjmp/longjmp */ -/* Error-catching routines */ +#undef DEBUG +/* #define DEBUG */ +#undef debug + +#ifdef DEBUG +# define debug(xx) fprintf(stderr,xx) +#else +# define debug(xx) +#endif + +static Image *image; /* xloadimage image being returned */ static char *filename; -static unsigned int verbose; -static unsigned int identify; static jmp_buf setjmp_buffer; /* for return to caller */ -static external_methods_ptr emethods; /* needed for access to message_parm */ +ZFILE * zinput_file; /* tells input routine where to read JPEG */ +static JOCTET jpeg_read_buff[1024 * 16]; -static void -trace_message (msgtext) - char *msgtext; +/* + * source manager + */ +static void init_source( j_decompress_ptr cinfo) { - fprintf(stderr, "jpegLoad: %s - ", filename); - fprintf(stderr, msgtext, - emethods->message_parm[0], emethods->message_parm[1], - emethods->message_parm[2], emethods->message_parm[3], - emethods->message_parm[4], emethods->message_parm[5], - emethods->message_parm[6], emethods->message_parm[7]); - fprintf(stderr, "\n"); /* there is no \n in the format string! */ -} -static void -error_exit (msgtext) - char *msgtext; -{ - trace_message(msgtext); /* report the error message */ - (*emethods->free_all) (); /* clean up memory allocation & temp files */ - longjmp(setjmp_buffer, 1); /* return control to outer routine */ + debug("init_source()"); } - -/* Output-acceptance routines */ - -static Image *image; /* xloadimage image being returned */ -static int rows_put; /* Number of rows copied to image */ - - -static void -output_init (cinfo) - decompress_info_ptr cinfo; -/* Initialize for output */ +static boolean fill_input_buffer( j_decompress_ptr cinfo) { - int i; + struct jpeg_source_mgr *src = cinfo->src; - if (cinfo->out_color_space == CS_GRAYSCALE) { - image = newRGBImage(cinfo->image_width,cinfo->image_height,8); - image->title = dupString(filename); - /* set a linear map */ - for(i=0;i<256;i++) { - *(image->rgb.red + i) = - *(image->rgb.green + i) = - *(image->rgb.blue + i) = i<<8; + debug("fill_input_buffer()"); +#ifdef DEBUG + fprintf( stderr,"fill_input_buffer(): %d ",src->bytes_in_buffer); +#endif + src->next_input_byte = jpeg_read_buff; + src->bytes_in_buffer = zread(zinput_file, + jpeg_read_buff, sizeof(jpeg_read_buff)); + if(src->bytes_in_buffer <= 0){ + WARNMS(cinfo, JWRN_JPEG_EOF); + jpeg_read_buff[0] = 0xFF; + jpeg_read_buff[1] = JPEG_EOI; + src->bytes_in_buffer = 2; } - image->rgb.used = 256; - } else if (cinfo->out_color_space == CS_RGB) { - image = newTrueImage(cinfo->image_width,cinfo->image_height); - image->title = dupString(filename); - } else { - image = NULL; - ERREXIT(cinfo->emethods, "Cannot cope with JPEG image colorspace"); - } - rows_put = 0; + return TRUE; } - -static void -put_color_map (cinfo, num_colors, colormap) - decompress_info_ptr cinfo; - int num_colors; - JSAMPARRAY colormap; -/* Write the color map -- should not be called */ +static void skip_input_data( j_decompress_ptr cinfo, long num_bytes) { - fprintf(stderr, "put_color_map called: there is a bug here somewhere!\n"); -} - + int rest; + struct jpeg_source_mgr *src = cinfo->src; -static void -put_pixel_rows (cinfo, num_rows, pixel_data) - decompress_info_ptr cinfo; - int num_rows; - JSAMPIMAGE pixel_data; -/* Write some rows of output data */ -{ - register unsigned char *bufp; - register JSAMPROW ptr0, ptr1, ptr2; - register long col; - long width = cinfo->image_width; - int row; - - if (cinfo->out_color_space == CS_GRAYSCALE) { - bufp = image->data + rows_put * width; - /* Assume JSAMPLE == chars */ - for (row = 0; row < num_rows; row++) { - bcopy(pixel_data[0][row],bufp,width); - bufp += width; + debug("skip_input_data()"); +#ifdef DEBUG + fprintf(stderr,": %ld,%d ", num_bytes, src->bytes_in_buffer); +#endif + if( num_bytes < 1) return; + rest = src->bytes_in_buffer; + if( num_bytes < rest) { + src->next_input_byte += num_bytes; + src->bytes_in_buffer -= num_bytes;; + return; } - } else { - bufp = image->data + rows_put * width * 3; - for (row = 0; row < num_rows; row++) { - ptr0 = pixel_data[0][row]; - ptr1 = pixel_data[1][row]; - ptr2 = pixel_data[2][row]; - for (col = width; col > 0; col--) { - *bufp++ = *ptr0++; - *bufp++ = *ptr1++; - *bufp++ = *ptr2++; - } + num_bytes -= rest; + while( num_bytes--) { + zgetc(zinput_file); } - } - rows_put += num_rows; + fill_input_buffer(cinfo); } - -static void -output_term (cinfo) - decompress_info_ptr cinfo; -/* Finish up at the end of the output */ +static boolean resync_to_restart( j_decompress_ptr cinfo, int desired) { - /* No work here */ + return jpeg_resync_to_restart( cinfo, desired); } - -/* Input-file-reading routine */ - - -static ZFILE * input_file; /* tells input routine where to read JPEG */ - - -static int -read_jpeg_data (cinfo) - decompress_info_ptr cinfo; +static void term_source( j_decompress_ptr cinfo) { - cinfo->next_input_byte = cinfo->input_buffer + MIN_UNGET; + debug("term_source()"); +} - cinfo->bytes_in_buffer = zread(input_file, - (byte *)cinfo->next_input_byte, - JPEG_BUF_SIZE); - - if (cinfo->bytes_in_buffer <= 0) { - WARNMS(cinfo->emethods, "Premature EOF in JPEG file"); - cinfo->next_input_byte[0] = (char) 0xFF; - cinfo->next_input_byte[1] = (char) 0xD9; /* EOI marker */ - cinfo->bytes_in_buffer = 2; - } +/* + * error manager + */ +static void +output_message ( j_common_ptr cominfo) +{ + char buf[JMSG_LENGTH_MAX]; - return JGETC(cinfo); + (*cominfo->err->format_message)(cominfo, buf); + fprintf(stderr, "jpegLoad: %s - %s\n", filename, buf); } -/* Required control-hook routine */ +static void error_exit (j_common_ptr cominfo) +{ + output_message( cominfo); + longjmp(setjmp_buffer, 1); /* return control to outer routine */ +} static void -d_ui_method_selection (cinfo) - decompress_info_ptr cinfo; +jpegInfo (cinfo) + j_decompress_ptr cinfo; { - /* if grayscale input, force grayscale output; */ - /* else leave the output colorspace as set by main routine. */ - if (cinfo->jpeg_color_space == CS_GRAYSCALE) - cinfo->out_color_space = CS_GRAYSCALE; - - /* Create display of image parameters */ - if (verbose) { + /* Create display of image parameters */ printf("%s is a %dx%d JPEG image, color space ", filename, cinfo->image_width, cinfo->image_height); switch (cinfo->jpeg_color_space) { - case CS_UNKNOWN: - printf("Unknown"); - break; - case CS_GRAYSCALE: - printf("Grayscale"); - break; - case CS_RGB: - printf("RGB"); - break; - case CS_YCbCr: - printf("YCbCr"); - break; - case CS_YIQ: - printf("YIQ"); - break; - case CS_CMYK: - printf("CMYK"); - break; + case JCS_GRAYSCALE: + printf("Grayscale"); + break; + case JCS_RGB: + printf("RGB"); + break; + case JCS_YCbCr: + printf("YCbCr"); + break; + case JCS_CMYK: + printf("CMYK"); + break; + case JCS_YCCK: + printf("YCCK"); + break; + case JCS_UNKNOWN: + default: + printf("Unknown"); + break; } printf(", %d comp%s,", cinfo->num_components, - cinfo->num_components ? "s." : "."); + (cinfo->num_components - 1) ? "s" : ""); + if (cinfo->progressive_mode) + printf(" Progressive,"); if (cinfo->arith_code) - printf(" Arithmetic coding\n"); + printf(" Arithmetic coding.\n"); else - printf(" Huffman coding\n"); - } - - /* Turn off caching beyond this point of the file */ - znocache(input_file); - - /* If we only wanted to identify the image, abort now */ - if (identify) { - (*emethods->free_all) (); /* clean up memory allocation & temp files */ - longjmp(setjmp_buffer, 10); /* return control with success code */ - } - - /* select output routines */ - cinfo->methods->output_init = output_init; - cinfo->methods->put_color_map = put_color_map; - cinfo->methods->put_pixel_rows = put_pixel_rows; - cinfo->methods->output_term = output_term; + printf(" Huffman coding.\n"); } /* Main control routine for loading */ - Image * -jpegLoad (fullname, name, vbose) +jpegLoad (fullname, name, verbose) char *fullname, *name; - unsigned int vbose; + unsigned int verbose; { - struct Decompress_info_struct cinfo; - struct Decompress_methods_struct dc_methods; - struct External_methods_struct e_methods; - - input_file = zopen(fullname); /* Open the input file */ - if (input_file == NULL) - return NULL; - - /* Quick check to see if file starts with JPEG SOI marker */ - if (zgetc(input_file) != 0xFF || zgetc(input_file) != 0xD8) { - zclose(input_file); - return NULL; - } - - filename = name; /* copy parms to static vars */ - verbose = vbose; - identify = 0; - - image = NULL; /* in case we fail before creating image */ - - cinfo.methods = &dc_methods; /* links to method structs */ - cinfo.emethods = &e_methods; - emethods = &e_methods; /* save struct addr for possible access */ - e_methods.error_exit = error_exit; /* supply error-exit routine */ - e_methods.trace_message = trace_message; /* supply trace-message routine */ - e_methods.trace_level = 0; /* default = no tracing */ - e_methods.num_warnings = 0; /* no warnings emitted yet */ - e_methods.first_warning_level = 0; /* display first corrupt-data warning */ - e_methods.more_warning_level = 3; /* but suppress additional ones */ - - /* prepare setjmp context for possible exit from error_exit */ - if (setjmp(setjmp_buffer)) { - /* If we get here, the JPEG code has signaled an error. */ - /* Return as much of the image as we could get. */ - zclose(input_file); - return image; - } + struct jpeg_decompress_struct cinfo; + struct jpeg_source_mgr src_mgr; + struct jpeg_error_mgr err_mgr; + int i, row_stride; + byte *bufp; - jselmemmgr(&e_methods); /* select std memory allocation routines */ + zinput_file = zopen(fullname); /* Open the input file */ + if (zinput_file == NULL) + return NULL; + filename = name; /* copy parms to static vars */ + image = NULL; /* in case we fail before creating image */ - /* Set up default decompression parameters. */ - j_d_defaults(&cinfo, TRUE); + jpeg_create_decompress(&cinfo); + src_mgr.init_source = init_source; + src_mgr.fill_input_buffer = fill_input_buffer; + src_mgr.skip_input_data = skip_input_data; + src_mgr.resync_to_restart = resync_to_restart; + src_mgr.term_source = term_source; + cinfo.src = &src_mgr; /* links to method structs */ + err_mgr.error_exit = error_exit; /* supply error-exit routine */ + err_mgr.output_message = output_message; + err_mgr.trace_level = 0; /* default = no tracing */ + err_mgr.num_warnings = 0; /* no warnings emitted yet */ + cinfo.err = jpeg_std_error(&err_mgr); - /* Override default methods */ - dc_methods.d_ui_method_selection = d_ui_method_selection; - dc_methods.read_jpeg_data = read_jpeg_data; + src_mgr.bytes_in_buffer = 0; + fill_input_buffer( &cinfo); + /* Quick check to see if file starts with JPEG SOI marker */ + if(jpeg_read_buff[0] != 0xFF || jpeg_read_buff[1] != 0xD8) { + zclose(zinput_file); + return NULL; + } - /* Insert fake SOI into the input buffer --- needed cause we read it above */ - cinfo.next_input_byte = cinfo.input_buffer + MIN_UNGET; - cinfo.next_input_byte[0] = (char) 0xFF; - cinfo.next_input_byte[1] = (char) 0xD8; /* SOI marker */ - cinfo.bytes_in_buffer = 2; + /* prepare setjmp context for possible exit from error_exit */ + if (setjmp(setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. */ + /* Return as much of the image as we could get. */ + jpeg_destroy_decompress(&cinfo); + zclose(zinput_file); + return image; + } + + jpeg_read_header(&cinfo, TRUE); + if (verbose) jpegInfo(&cinfo); + /* Turn off caching beyond this point of the file */ + znocache(zinput_file); + jpeg_start_decompress(&cinfo); - /* Set up to read a JFIF or baseline-JPEG file. */ - /* This is the only JPEG file format currently supported. */ - jselrjfif(&cinfo); + switch (cinfo.out_color_space) { + case JCS_GRAYSCALE: + image = newRGBImage(cinfo.image_width,cinfo.image_height,8); + image->title = dupString(filename); + /* set a linear map */ + for(i=0;i<256;i++) { + *(image->rgb.red + i) = + *(image->rgb.green + i) = + *(image->rgb.blue + i) = i << 8; + } + image->rgb.used = 256; + break; + case JCS_RGB: + image = newTrueImage(cinfo.image_width,cinfo.image_height); + image->title = dupString(filename); + break; + default: + image = NULL; + ERREXITS(&cinfo, 1, "Cannot cope with JPEG image colorspace"); + } - /* Here we go! */ - jpeg_decompress(&cinfo); + row_stride = cinfo.output_width * cinfo.output_components; + bufp = image->data; + while (cinfo.output_scanline < cinfo.output_height) { + jpeg_read_scanlines(&cinfo, &bufp, 1); + bufp += row_stride; + } - zclose(input_file); /* Done, close the input file */ + jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + zclose(zinput_file); /* Done, close the input file */ - return image; + return image; } -/* Main control routine for identifying JPEG without loading */ - - +/* + Main control routine for identifying JPEG without loading + return 0: Not jpeg file. + */ int jpegIdent (fullname, name) char *fullname, *name; { - struct Decompress_info_struct cinfo; - struct Decompress_methods_struct dc_methods; - struct External_methods_struct e_methods; - - input_file = zopen(fullname); /* Open the input file */ - if (input_file == NULL) - return 0; - - /* Quick check to see if file starts with JPEG SOI marker */ - if (zgetc(input_file) != 0xFF || zgetc(input_file) != 0xD8) { - zclose(input_file); - return 0; - } - - /* We want to find and display the image dimensions, and also - * verify that the header markers are not corrupt. To do this, - * we fire up the JPEG decoder as normal, but when d_ui_method_selection - * is called, we abort the process by longjmp'ing back here. - * This works nicely since the headers are all read at that point. - */ - - filename = name; /* copy parms to static vars */ - verbose = 1; - identify = 1; - - cinfo.methods = &dc_methods; /* links to method structs */ - cinfo.emethods = &e_methods; - emethods = &e_methods; /* save struct addr for possible access */ - e_methods.error_exit = error_exit; /* supply error-exit routine */ - e_methods.trace_message = trace_message; /* supply trace-message routine */ - e_methods.trace_level = 0; /* default = no tracing */ - e_methods.num_warnings = 0; /* no warnings emitted yet */ - e_methods.first_warning_level = 0; /* display first corrupt-data warning */ - e_methods.more_warning_level = 3; /* but suppress additional ones */ - - /* prepare setjmp context for expected exit via longjmp */ - switch (setjmp(setjmp_buffer)) { - case 0: - /* First time thru, keep going */ - break; - case 10: - /* Successful exit from d_ui_method_selection; return A-OK */ - zclose(input_file); - return 1; - default: - /* If we get here, the JPEG code has signaled an error. */ - /* Return 0 since error in the headers means the image is unloadable. */ - zclose(input_file); - return 0; - } - - jselmemmgr(&e_methods); /* select std memory allocation routines */ - - /* Set up default decompression parameters. */ - j_d_defaults(&cinfo, TRUE); - - /* Override default methods */ - dc_methods.d_ui_method_selection = d_ui_method_selection; - dc_methods.read_jpeg_data = read_jpeg_data; - - /* Insert fake SOI into the input buffer --- needed cause we read it above */ - cinfo.next_input_byte = cinfo.input_buffer + MIN_UNGET; - cinfo.next_input_byte[0] = (char) 0xFF; - cinfo.next_input_byte[1] = (char) 0xD8; /* SOI marker */ - cinfo.bytes_in_buffer = 2; - - /* Set up to read a JFIF or baseline-JPEG file. */ - /* This is the only JPEG file format currently supported. */ - jselrjfif(&cinfo); - - /* Here we go! */ - jpeg_decompress(&cinfo); - - /* Don't expect to get here since d_ui_method_selection should do longjmp */ - - zclose(input_file); - return 0; -} - -/* information necessary to extract image data - */ -static struct { - Image *image; - byte *current_row; - unsigned int bytes_per_row; -} ReadInfo; - -static void input_init(cinfo) -compress_info_ptr cinfo; -{ - /* this is done in jpegDump() - */ -} + struct jpeg_decompress_struct cinfo; + struct jpeg_source_mgr src_mgr; + struct jpeg_error_mgr err_mgr; -static void input_term(cinfo) -compress_info_ptr cinfo; -{ - /* there is no shutdown necessary - */ -} + zinput_file = zopen(fullname); /* Open the input file */ + if (zinput_file == NULL) + return 0; -/* this reads a single raster line - */ -static void read_row(cinfo, pixel_rows) - compress_info_ptr cinfo; - JSAMPARRAY pixel_rows; -{ - register int x; - register int pixlen; - register byte *src_row_ptr; - register byte *dest_red_ptr; - register byte *dest_green_ptr; - register byte *dest_blue_ptr; - register Pixel pixval; - register byte mask; + filename = name; /* copy parms to static vars */ - switch (ReadInfo.image->type) { - case IBITMAP: - mask = 0x80; - src_row_ptr = ReadInfo.current_row; - dest_red_ptr = (byte *)pixel_rows[0]; - for (x = 0; x < cinfo->image_width; x++) { - pixval = ((*src_row_ptr & mask) > 0 ? 1 : 0); + jpeg_create_decompress(&cinfo); + src_mgr.init_source = init_source; + src_mgr.fill_input_buffer = fill_input_buffer; + src_mgr.skip_input_data = skip_input_data; + src_mgr.resync_to_restart = resync_to_restart; + src_mgr.term_source = term_source; + cinfo.src = &src_mgr; /* links to method structs */ + err_mgr.error_exit = error_exit; /* supply error-exit routine */ + err_mgr.output_message = output_message; + err_mgr.trace_level = 0; /* default = no tracing */ + err_mgr.num_warnings = 0; /* no warnings emitted yet */ + cinfo.err = jpeg_std_error(&err_mgr); - /* we use the "red" color value under the assumption that they - * are all equal. that can be wrong if the user used -foreground - * or -background. I don't care right now. - */ - *(dest_red_ptr++) = ReadInfo.image->rgb.red[pixval] >> 8; - mask >>= 1; - if (mask == 0) { - mask = 0x80; - src_row_ptr++; - } + src_mgr.bytes_in_buffer = 0; + fill_input_buffer( &cinfo); + /* Quick check to see if file starts with JPEG SOI marker */ + if(jpeg_read_buff[0] != 0xFF || jpeg_read_buff[1] != 0xD8) { + jpeg_destroy_decompress(&cinfo); + zclose(zinput_file); + return 0; } - break; - case IRGB: - /* this expands the pixel value into its components - */ - pixlen = ReadInfo.image->pixlen; - src_row_ptr = ReadInfo.current_row; - dest_red_ptr = (byte *)pixel_rows[0]; - dest_green_ptr = (byte *)pixel_rows[1]; - dest_blue_ptr = (byte *)pixel_rows[2]; - for (x = 0; x < cinfo->image_width; x++) { - pixval = memToVal(src_row_ptr, pixlen); - *(dest_red_ptr++) = ReadInfo.image->rgb.red[pixval] >> 8; - *(dest_green_ptr++) = ReadInfo.image->rgb.green[pixval] >> 8; - *(dest_blue_ptr++) = ReadInfo.image->rgb.blue[pixval] >> 8; - src_row_ptr += pixlen; + /* prepare setjmp context for expected exit via longjmp */ + if (setjmp(setjmp_buffer)) { + /* If we get here, the JPEG code has signaled an error. */ + /* Return 0 since error in the headers means the image is unloadable. */ + jpeg_destroy_decompress(&cinfo); + zclose(zinput_file); + return 0; } - break; - case ITRUE: - src_row_ptr = ReadInfo.current_row; - dest_red_ptr = (byte *)pixel_rows[0]; - dest_green_ptr = (byte *)pixel_rows[1]; - dest_blue_ptr = (byte *)pixel_rows[2]; - for (x = 0; x < cinfo->image_width; x++) { - *(dest_red_ptr++) = *(src_row_ptr++); - *(dest_green_ptr++) = *(src_row_ptr++); - *(dest_blue_ptr++) = *(src_row_ptr++); - } - break; - } - ReadInfo.current_row += ReadInfo.bytes_per_row; + jpeg_read_header(&cinfo, TRUE); + jpegInfo(&cinfo); + /* Turn off caching beyond this point of the file */ + znocache(zinput_file); + jpeg_destroy_decompress(&cinfo); + zclose(zinput_file); + + return 1; } /* - * This routine gets control after the input file header has been read. - * It must determine what output JPEG file format is to be written, - * and make any other compression parameter changes that are desirable. + * Dump Jpeg */ -static void -c_ui_method_selection (cinfo) - compress_info_ptr cinfo; -{ - /* If the input is gray scale, generate a monochrome JPEG file. */ - if (cinfo->in_color_space == CS_GRAYSCALE) - j_monochrome_default(cinfo); - jselwjfif(cinfo); -} - /* parse options passed to jpegDump */ -static void parseOptions(cinfo, options, verbose) - compress_info_ptr cinfo; - char *options; - int verbose; +static void parseOptions(j_compress_ptr cinfo, char *options, int verbose) { char *name, *value; - /* (Re-)initialize the system-dependent error and memory managers. */ - jselerror(cinfo->emethods); /* error/trace message routines */ - jselmemmgr(cinfo->emethods); /* memory allocation routines */ - cinfo->methods->c_ui_method_selection = c_ui_method_selection; - - /* Set up default JPEG parameters. */ - /* Note that default -quality level here need not, and does not, - * match the default scaling for an explicit -qtables argument. - */ - j_c_defaults(cinfo, 75, FALSE); /* default quality level = 75 */ - while (getNextTypeOption(&options, &name, &value) > 0) { if (!strncmp("arithmetic", name, strlen(name))) { /* Use arithmetic coding. */ @@ -524,7 +329,7 @@ /* Force a monochrome JPEG file to be generated. */ if (verbose) printf(" Creating a grayscale/monochrome file.\n"); - j_monochrome_default(cinfo); + jpeg_set_colorspace(cinfo, JCS_GRAYSCALE); } else if (!strncmp("nointerleave", name, strlen(name))) { /* Create noninterleaved file. */ @@ -536,16 +341,18 @@ fprintf(stderr, "jpegDump: sorry, multiple-scan support was not compiled\n"); #endif } + else if (!strncmp("progressive", name, strlen(name))) { + /* Enable progressive JPEG. */ + if (verbose) + printf(" Progressive JPEG.\n"); + jpeg_simple_progression (cinfo); + } else if (!strncmp("optimize", name, strlen(name)) || !strncmp("optimise", name, strlen(name))) { /* Enable entropy parm optimization. */ -#ifdef ENTROPY_OPT_SUPPORTED if (verbose) printf(" Optimizing entropy.\n"); cinfo->optimize_coding = TRUE; -#else - fprintf(stderr, "jpegDump: sorry, entropy optimization was not compiled\n"); -#endif } else if (!strncmp("quality", name, strlen(name))) { /* Quality factor (quantization table scaling factor). */ @@ -561,7 +368,7 @@ */ if (verbose) printf(" Using a quality factor of %d.\n", val); - j_set_quality(cinfo, val, FALSE); + jpeg_set_quality(cinfo, val, FALSE); #if 0 /* Change scale factor in case -qtables is present. */ q_scale_factor = j_quality_scaling(val); @@ -626,74 +433,134 @@ } } -void jpegDump(image, options, file, verbose) - Image *image; - char *options; - char *file; +/* this reads a single raster line + */ + +byte *current_row; +unsigned int bytes_per_row; + +static byte *read_row(Image *image, byte *pixel_rows) { - struct Compress_info_struct cinfo; - struct Compress_methods_struct c_methods; - struct External_methods_struct e_methods; + int x; + int pixlen; + byte *src_row_ptr = current_row; + byte *dest_row_ptr = pixel_rows; + Pixel pixval; + byte mask; - if (verbose) - printf("Dumping JFIF-style JPEG image to %s.\n", file); + switch (image->type) { + case IBITMAP: + mask = 0x80; + for (x = 0; x < image->width; x++) { + pixval = ((*src_row_ptr & mask) > 0 ? 1 : 0); - /* Set up links to method structures. */ - cinfo.methods = &c_methods; - cinfo.emethods = &e_methods; + /* we use the "red" color value under the assumption that they + * are all equal. that can be wrong if the user used -foreground + * or -background. I don't care right now. + */ + *dest_row_ptr++ = image->rgb.red[pixval] >> 8; + mask >>= 1; + if (mask == 0) { + mask = 0x80; + src_row_ptr++; + } + } + break; - /* set up "input methods" that handle "reading" from our image file - */ - cinfo.methods->input_init = input_init; - cinfo.methods->input_term = input_term; - cinfo.methods->get_input_row = read_row; + case IRGB: + /* this expands the pixel value into its components + */ + pixlen = image->pixlen; + for (x = 0; x < image->width; x++) { + pixval = memToVal(src_row_ptr, pixlen); + *dest_row_ptr++ = image->rgb.red[pixval] >> 8; + *dest_row_ptr++ = image->rgb.green[pixval] >> 8; + *dest_row_ptr++ = image->rgb.blue[pixval] >> 8; + src_row_ptr += pixlen; + } + break; - /* set up output file; there is no input file - */ - cinfo.input_file = NULL; - cinfo.output_file = fopen(file, "w"); - if (cinfo.output_file == NULL) { - perror(file); - return; - } + case ITRUE: + return current_row; + break; + } + return pixel_rows; +} - ReadInfo.image = image; - ReadInfo.current_row = image->data; +void jpegDump(Image *image, char *options, char *file, int verbose) +{ + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + FILE * outfile; /* target file */ + JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */ - /* parse the options the user gave us - */ - parseOptions(&cinfo, options, verbose); + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); - /* set up image information - */ - cinfo.image_width = image->width; - cinfo.image_height = image->height; + if ((outfile = fopen(file, "w")) == NULL) { + perror(file); + return; + } + jpeg_stdio_dest(&cinfo, outfile); - switch (image->type) { - case IBITMAP: - ReadInfo.bytes_per_row = (image->width / 8) + (image->width % 8 ? 1 : 0); - cinfo.input_components = 1; - cinfo.in_color_space = CS_GRAYSCALE; - cinfo.data_precision = 8; - break; - case IRGB: - ReadInfo.bytes_per_row = image->width * image->pixlen; - cinfo.input_components = 3; - cinfo.in_color_space = CS_RGB; - cinfo.data_precision = 8; - break; - case ITRUE: - ReadInfo.bytes_per_row = image->width * image->pixlen; - cinfo.input_components = 3; - cinfo.in_color_space = CS_RGB; - cinfo.data_precision = 8; - break; - } + cinfo.image_width = image->width; + cinfo.image_height = image->height; - /* compress, baby - */ - jpeg_compress(&cinfo); + /* set # of color components per pixel & colospace fo input image */ + switch (image->type) { + case IBITMAP: + bytes_per_row = (image->width / 8) + (image->width % 8 ? 1 : 0); + cinfo.input_components = 1; + cinfo.in_color_space = JCS_GRAYSCALE; + row_pointer[0] = lmalloc( cinfo.image_width * cinfo.input_components); + break; + case IRGB: + bytes_per_row = image->width * image->pixlen; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ + row_pointer[0] = lmalloc( cinfo.image_width * cinfo.input_components); + break; + case ITRUE: + bytes_per_row = image->width * image->pixlen; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ + row_pointer[0] = image->data; + break; + } + /* Now use the library's routine to set default compression parameters. + * (You must set at least cinfo.in_color_space before calling this, + * since the defaults depend on the source color space.) + */ + jpeg_set_defaults(&cinfo); + /* Now you can set any non-default parameters you wish to. + * Here we just illustrate the use of quality (quantization table) scaling: + */ + jpeg_set_quality(&cinfo, 75, TRUE /* limit to baseline-JPEG values */); + if( cinfo.in_color_space == JCS_GRAYSCALE) + jpeg_set_colorspace(&cinfo, JCS_GRAYSCALE); + parseOptions(&cinfo, options, verbose); - fclose(cinfo.output_file); - return; + jpeg_start_compress(&cinfo, TRUE); + + current_row = image->data; + while (cinfo.next_scanline < cinfo.image_height) { + /* jpeg_write_scanlines expects an array of pointers to scanlines. + * Here the array is only one element long, but you could pass + * more than one scanline at a time if that's more convenient. + */ + row_pointer[0] = read_row(image, row_pointer[0]); + (void) jpeg_write_scanlines(&cinfo, row_pointer, 1); + current_row += bytes_per_row; + } + + jpeg_finish_compress(&cinfo); + fclose(outfile); + jpeg_destroy_compress(&cinfo); + if (image->type == IBITMAP || image->type == IRGB) { + lfree( row_pointer[0]); + } } + +#else /* !HAVE_LIBJPEG */ +static int unused; +#endif /* !HAVE_LIBJPEG */ diff -urNad 01.xloadimage.tmp/misc.c 01.xloadimage/misc.c --- 01.xloadimage.tmp/misc.c 1993-10-21 22:28:39.000000000 +0100 +++ 01.xloadimage/misc.c 2003-04-03 00:11:28.000000000 +0100 @@ -32,8 +32,10 @@ switch (sig) { case SIGSEGV: return("SEGV"); +#ifdef SIGBUS case SIGBUS: return("BUS"); +#endif case SIGFPE: return("FPE"); case SIGILL: diff -urNad 01.xloadimage.tmp/niff.c 01.xloadimage/niff.c --- 01.xloadimage.tmp/niff.c 1993-10-28 16:16:03.000000000 +0000 +++ 01.xloadimage/niff.c 2003-04-03 00:11:28.000000000 +0100 @@ -8,6 +8,7 @@ * this is in the public domain. */ +#include #include "image.h" #include "niff.h" @@ -17,8 +18,7 @@ { printf("%s is a %dx%d ", name, memToVal(header->width, 4), - memToVal(header->height, 4), - memToVal(header->depth, 4)); + memToVal(header->height, 4)); if (memToVal(header->version, 4) != NIFF_VERSION) printf("version %d ", memToVal(header->version, 4)); printf("NIFF "); @@ -121,8 +121,8 @@ struct niff_header header; char *title; unsigned int width, height, depth; - Image *image; - unsigned int data_size; + Image *image = NULL; + unsigned int data_size = 0; if (! (zf= zopen(fullname))) return(NULL); @@ -191,7 +191,7 @@ unsigned int a; struct niff_header header; struct niff_cmap cmap; - unsigned int data_size; + unsigned int data_size = 0; if (verbose) printf("Dumping NIFF image to %s.\n", filename); diff -urNad 01.xloadimage.tmp/pbm.c 01.xloadimage/pbm.c --- 01.xloadimage.tmp/pbm.c 1993-10-28 17:39:47.000000000 +0000 +++ 01.xloadimage/pbm.c 2003-04-03 00:11:28.000000000 +0100 @@ -12,6 +12,7 @@ */ #include "image.h" +#include "options.h" #include "pbm.h" /* SUPPRESS 558 */ @@ -188,14 +189,14 @@ char *fullname, *name; unsigned int verbose; { ZFILE *zf; - Image *image; + Image *image = NULL; int pbm_type; int x, y; int width, height, maxval, depth; unsigned int linelen; byte srcmask, destmask; byte *destptr, *destline; - int src, size; + int src = 0, size; int red, grn, blu; if (! (zf= zopen(fullname))) diff -urNad 01.xloadimage.tmp/rlelib.c 01.xloadimage/rlelib.c --- 01.xloadimage.tmp/rlelib.c 1993-10-21 22:28:41.000000000 +0100 +++ 01.xloadimage/rlelib.c 2003-04-03 00:11:28.000000000 +0100 @@ -980,7 +980,8 @@ * Returns code. */ -rle_get_error( code, pgmname, fname ) +int rle_get_error( code, pgmname, fname ) +int code; char *pgmname; char *fname; { @@ -1595,7 +1596,7 @@ total = size * size; - i = 0; + i = bx = by = 0; li = -1; for(j=0;j /* this structure contains all the information we care about WRT a TIFF * image. @@ -217,7 +217,7 @@ compressionName(info->compression)); } if (info->title) - printf("Titled \"%s\""); + printf("Titled \"%s\"", info->title); printf("\n"); } @@ -227,14 +227,14 @@ struct tiff_info info; tiff = is_tiff(fullname, name, &info); - babble(name, info); if (tiff == NULL) return(0); + babble(name, &info); if (tiff == (TIFF *)-1) /* is TIFF, but can't open it */ return(1); TIFFClose(tiff); - babble(fullname, name, info); +/* babble(fullname, name, info); */ return(1); } @@ -404,6 +404,7 @@ if (info.samplesperpixel != 3) { fprintf(stderr, "%s: Can't handle TIFF RGB images with %d samples per pixel, sorry\n", + fullname, info.samplesperpixel); image = NULL; break; @@ -624,6 +625,6 @@ TIFFClose(out); } -#else /* !HAS_TIFF */ +#else /* !HAVE_LIBTIFF */ static int unused; -#endif /* !HAS_TIFF */ +#endif /* !HAVE_LIBTIFF */ diff -urNad 01.xloadimage.tmp/uufilter.c 01.xloadimage/uufilter.c --- 01.xloadimage.tmp/uufilter.c 1993-10-28 16:03:31.000000000 +0000 +++ 01.xloadimage/uufilter.c 2003-04-03 00:11:28.000000000 +0100 @@ -11,8 +11,9 @@ */ #include +#include -main(argc, argv) +int main(argc, argv) int argc; char **argv; { @@ -64,7 +65,7 @@ fprintf(stderr, "Ignoring header line: %s\n", buf); } if (feof(inf)) { - fprintf(stderr, "No 'begin' line, sorry.\n", infilename); + fprintf(stderr, "%s: No 'begin' line, sorry.\n", infilename); exit(1); } diff -urNad 01.xloadimage.tmp/vff.c 01.xloadimage/vff.c --- 01.xloadimage.tmp/vff.c 1993-10-27 14:22:58.000000000 +0000 +++ 01.xloadimage/vff.c 2003-04-03 00:11:28.000000000 +0100 @@ -29,6 +29,7 @@ */ +#include #include "image.h" #define HEAD_BUF_SIZE 2048 diff -urNad 01.xloadimage.tmp/window.c 01.xloadimage/window.c --- 01.xloadimage.tmp/window.c 1993-11-08 21:06:02.000000000 +0000 +++ 01.xloadimage/window.c 2003-04-03 00:11:28.000000000 +0100 @@ -15,7 +15,7 @@ #include #include #include -#include +#include #ifdef HAS_POLL #include #else /* !HAS_POLL */ @@ -616,13 +616,13 @@ lastx= (winwidth || winheight); /* user set size flag */ if (!winwidth) { winwidth= image->width; - if (winwidth > DisplayWidth(disp, scrn) * 0.9) - winwidth= DisplayWidth(disp, scrn) * 0.9; + if (winwidth > DisplayWidth(disp, scrn) * 0.98) + winwidth= DisplayWidth(disp, scrn) * 0.98; } if (!winheight) { winheight= image->height; - if (winheight > DisplayHeight(disp, scrn) * 0.9) - winheight= DisplayHeight(disp, scrn) * 0.9; + if (winheight > DisplayHeight(disp, scrn) * 0.95) + winheight= DisplayHeight(disp, scrn) * 0.95; } } @@ -902,10 +902,25 @@ switch (event.any.type) { case ButtonPress: - if (event.button.button == 1) { + switch (event.button.button) { + case 1: lastx= event.button.x; lasty= event.button.y; break; + case 3: + if (delay) + alarm(0); + { + Cursor cursor; + cursor= swa_view.cursor; + swa_view.cursor= XCreateFontCursor(disp, XC_watch); + XChangeWindowAttributes(disp, ViewportWin, CWCursor, &swa_view); + XFreeCursor(disp, cursor); + XFlush(disp); + cleanUpImage(disp, scrn, swa_view.cursor, pixmap, + image, ximageinfo); + } + return(' '); } break; diff -urNad 01.xloadimage.tmp/xbitmap.c 01.xloadimage/xbitmap.c --- 01.xloadimage.tmp/xbitmap.c 1993-10-21 22:28:43.000000000 +0100 +++ 01.xloadimage/xbitmap.c 2003-04-03 00:11:28.000000000 +0100 @@ -132,7 +132,7 @@ char name_and_type[MAX_SIZE]; char *type; int value; - int v10p; + int v10p = 0; unsigned int linelen, dlinelen; unsigned int x, y; unsigned int w = 0, h = 0; diff -urNad 01.xloadimage.tmp/xloadimage.c 01.xloadimage/xloadimage.c --- 01.xloadimage.tmp/xloadimage.c 1993-11-05 14:11:46.000000000 +0000 +++ 01.xloadimage/xloadimage.c 2003-04-03 00:11:28.000000000 +0100 @@ -18,8 +18,6 @@ #endif #include -extern double atof(); - char *ProgramName= "xloadimage"; /* if an image loader needs to have our display and screen, it will get @@ -192,7 +190,9 @@ */ signal(SIGSEGV, internalError); +#ifdef SIGBUS signal(SIGBUS, internalError); +#endif signal(SIGFPE, internalError); signal(SIGILL, internalError); #if defined(_AIX) && defined(_IBMR2) debian/patches/06_-Wall-cleanup.patch0000755000000000000000000012045011741321713014551 0ustar From: James Troup Subject: Make the code -Wall clean. diff -urNad 06.xloadimage.tmp/bright.c 06.xloadimage/bright.c --- 06.xloadimage.tmp/bright.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/bright.c 2003-04-02 23:27:50.000000000 +0100 @@ -10,6 +10,7 @@ #include "copyright.h" #include "image.h" +#include "rlelib.h" /* alter an image's brightness by a given percentage */ @@ -150,6 +151,8 @@ byte *srcptr, *destptr; byte array[256]; + newimage = NULL; + goodImage(image, "normalize"); if (BITMAPP(image)) return(image); @@ -194,11 +197,11 @@ for (x= 0; x < image->width; x++) { pixval= memToVal(srcptr, image->pixlen); *destptr= array[image->rgb.red[pixval] >> 8]; - *destptr++; + destptr++; *destptr= array[image->rgb.green[pixval] >> 8]; - *destptr++; + destptr++; *destptr= array[image->rgb.blue[pixval] >> 8]; - *destptr++; + destptr++; srcptr += image->pixlen; } break; diff -urNad 06.xloadimage.tmp/cmuwmraster.c 06.xloadimage/cmuwmraster.c --- 06.xloadimage.tmp/cmuwmraster.c 1993-10-21 22:28:36.000000000 +0100 +++ 06.xloadimage/cmuwmraster.c 2003-04-02 23:27:50.000000000 +0100 @@ -16,11 +16,11 @@ /* SUPPRESS 558 */ -int babble(name, headerp) +void babble(name, headerp) char *name; struct cmuwm_header *headerp; { - printf("%s is a %dx%d %d plane CMU WM raster\n", + printf("%s is a %ldx%ld %ld plane CMU WM raster\n", name, memToVal(headerp->width, sizeof(long)), memToVal(headerp->height, sizeof(long)), @@ -108,7 +108,7 @@ { fprintf(stderr,"CMU WM raster %s is of depth %d, must be 1", name, - header.depth); + (int) header.depth); return(NULL); } diff -urNad 06.xloadimage.tmp/compress.c 06.xloadimage/compress.c --- 06.xloadimage.tmp/compress.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/compress.c 2003-04-02 23:27:50.000000000 +0100 @@ -136,12 +136,13 @@ lfree((byte *)pixel_table); lfree((byte *)pixel_map); - if (badcount) + if (badcount) { if (verbose) printf("%d out-of-range pixels, ", badcount); else fprintf(stderr, "Warning: %d out-of-range pixels were seen\n", badcount); + } if (verbose) { if ((rgb.used == image->rgb.used) && !badcount) printf("no improvment\n"); diff -urNad 06.xloadimage.tmp/copyright.h 06.xloadimage/copyright.h --- 06.xloadimage.tmp/copyright.h 1993-10-21 22:28:36.000000000 +0100 +++ 06.xloadimage/copyright.h 2003-04-02 23:27:50.000000000 +0100 @@ -20,7 +20,9 @@ */ #ifndef __SABER__ +#ifndef LINT static char *Copyright= "Copyright 1989, 1993 Jim Frost"; +#endif /* LINT */ #endif #define _JIM_COPYRIGHT_ #endif diff -urNad 06.xloadimage.tmp/faces.c 06.xloadimage/faces.c --- 06.xloadimage.tmp/faces.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/faces.c 2003-04-02 23:27:50.000000000 +0100 @@ -178,7 +178,7 @@ char *fullname, *name; { Image *image; - if (image= facesLoad(fullname, name, 1)) { + if ((image= facesLoad(fullname, name, 1))) { freeImage(image); return(1); } diff -urNad 06.xloadimage.tmp/fbm.c 06.xloadimage/fbm.c --- 06.xloadimage.tmp/fbm.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/fbm.c 2003-04-02 23:27:50.000000000 +0100 @@ -204,7 +204,6 @@ register int x, y, j, k, rowlen, plnlen; unsigned char *pixptr, *cm; unsigned int map_size; - extern int Scrn; unsigned char *r, *g, *b; if (! (zf= zopen(fullname))) diff -urNad 06.xloadimage.tmp/gif.c 06.xloadimage/gif.c --- 06.xloadimage.tmp/gif.c 1993-10-21 22:28:37.000000000 +0100 +++ 06.xloadimage/gif.c 2003-04-02 23:27:50.000000000 +0100 @@ -468,7 +468,7 @@ * add a new string to the string table */ -static gifin_add_string(p, e) +static void gifin_add_string(p, e) int p; int e; { @@ -488,7 +488,7 @@ * semi-graceful fatal error mechanism */ -static gifin_fatal(msg) +static void gifin_fatal(msg) char *msg; { printf("Error reading GIF file: %s\n", msg); diff -urNad 06.xloadimage.tmp/gif.h 06.xloadimage/gif.h --- 06.xloadimage.tmp/gif.h 1993-10-21 22:28:37.000000000 +0100 +++ 06.xloadimage/gif.h 2003-04-02 23:27:50.000000000 +0100 @@ -50,8 +50,8 @@ static int gifin_skip_extension(); static int gifin_read_data_block(); static int gifin_push_string(); -static int gifin_add_string(); -static int gifin_fatal(); +static void gifin_add_string(); +static void gifin_fatal(); /* #defines, typedefs, and such */ diff -urNad 06.xloadimage.tmp/halftone.c 06.xloadimage/halftone.c --- 06.xloadimage.tmp/halftone.c 1993-10-21 22:28:37.000000000 +0100 +++ 06.xloadimage/halftone.c 2003-04-02 23:27:50.000000000 +0100 @@ -130,23 +130,23 @@ #define GRAYSTEP ((unsigned long)(65536 / GRAYS)) static byte DitherBits[GRAYS][4] = { - 0xf, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xf, 0xf, - 0xe, 0xf, 0xb, 0xf, - 0xa, 0xf, 0xb, 0xf, - 0xa, 0xf, 0xa, 0xf, - 0xa, 0xd, 0xa, 0xf, - 0xa, 0xd, 0xa, 0x7, - 0xa, 0x5, 0xa, 0x7, - 0xa, 0x5, 0xa, 0x5, - 0x8, 0x5, 0xa, 0x5, - 0x8, 0x5, 0x2, 0x5, - 0x0, 0x5, 0x2, 0x5, - 0x0, 0x5, 0x0, 0x5, - 0x0, 0x4, 0x0, 0x5, - 0x0, 0x4, 0x0, 0x1, - 0x0, 0x0, 0x0, 0x1, - 0x0, 0x0, 0x0, 0x0 + {0xf, 0xf, 0xf, 0xf}, + {0xe, 0xf, 0xf, 0xf}, + {0xe, 0xf, 0xb, 0xf}, + {0xa, 0xf, 0xb, 0xf}, + {0xa, 0xf, 0xa, 0xf}, + {0xa, 0xd, 0xa, 0xf}, + {0xa, 0xd, 0xa, 0x7}, + {0xa, 0x5, 0xa, 0x7}, + {0xa, 0x5, 0xa, 0x5}, + {0x8, 0x5, 0xa, 0x5}, + {0x8, 0x5, 0x2, 0x5}, + {0x0, 0x5, 0x2, 0x5}, + {0x0, 0x5, 0x0, 0x5}, + {0x0, 0x4, 0x0, 0x5}, + {0x0, 0x4, 0x0, 0x1}, + {0x0, 0x0, 0x0, 0x1}, + {0x0, 0x0, 0x0, 0x0} }; /* simple dithering algorithm, really optimized for the 4x4 array diff -urNad 06.xloadimage.tmp/image.h 06.xloadimage/image.h --- 06.xloadimage.tmp/image.h 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/image.h 2003-04-02 23:27:50.000000000 +0100 @@ -8,6 +8,9 @@ * copyright information. */ +#ifndef __IMAGE_H__ +#define __IMAGE_H__ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -320,3 +323,5 @@ #else /* !DEBUG */ #define debug(ARGS) #endif /* !DEBUG */ + +#endif /* __IMAGE_H__ */ diff -urNad 06.xloadimage.tmp/imagetypes.c 06.xloadimage/imagetypes.c --- 06.xloadimage.tmp/imagetypes.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/imagetypes.c 2003-04-02 23:27:50.000000000 +0100 @@ -47,7 +47,7 @@ if (opt) { for (a= 0; ImageTypes[a].loader; a++) if (!strncmp(ImageTypes[a].type, opt->info.type, strlen(opt->info.type))) { - if (image= ImageTypes[a].loader(fullname, name, verbose)) { + if ((image= ImageTypes[a].loader(fullname, name, verbose))) { zreset(NULL); /* this converts a 1-bit RGB image to a bitmap prior to blitting @@ -80,7 +80,7 @@ */ for (a= 0; ImageTypes[a].loader; a++) { debug(("Checking %s against loader for %s\n", fullname, ImageTypes[a].name)); - if (image= ImageTypes[a].loader(fullname, name, verbose)) { + if ((image= ImageTypes[a].loader(fullname, name, verbose))) { zreset(NULL); /* this does the 1-bit conversion as above. diff -urNad 06.xloadimage.tmp/imagetypes.h 06.xloadimage/imagetypes.h --- 06.xloadimage.tmp/imagetypes.h 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/imagetypes.h 2003-04-02 23:27:50.000000000 +0100 @@ -7,6 +7,9 @@ * jim frost 10.15.89 */ +#ifndef __IMAGETYPES_H__ +#define __IMAGETYPES_H__ + Image *niffLoad(); Image *facesLoad(); Image *pbmLoad(); @@ -88,35 +91,39 @@ char *type; /* image type name */ char *name; /* name of this image format */ } ImageTypes[] = { - niffIdent, niffLoad, niffDump, "niff", "Native Image File Format (NIFF)", - sunRasterIdent, sunRasterLoad, NULL, "sunraster", "Sun Rasterfile", - gifIdent, gifLoad, NULL, "gif", "GIF Image", + {niffIdent, niffLoad, niffDump, "niff", "Native Image File Format (NIFF)"}, + {sunRasterIdent, sunRasterLoad, NULL, "sunraster", "Sun Rasterfile"}, + {gifIdent, gifLoad, NULL, "gif", "GIF Image"}, #ifdef HAVE_LIBJPEG - jpegIdent, jpegLoad, jpegDump, "jpeg", "JFIF-style JPEG Image", + {jpegIdent, jpegLoad, jpegDump, "jpeg", "JFIF-style JPEG Image"}, #endif #ifdef HAVE_LIBTIFF - tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image", + {tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image"}, #endif #ifdef HAVE_LIBPNG - pngIdent, pngLoad, NULL, "png", "PNG image", + {pngIdent, pngLoad, NULL, "png", "PNG image"}, #endif - fbmIdent, fbmLoad, NULL, "fbm", "FBM Image", - cmuwmIdent, cmuwmLoad, NULL, "cmuraster", "CMU WM Raster", - pbmIdent, pbmLoad, pbmDump, "pbm", "Portable Bit Map (PBM, PGM, PPM)", - facesIdent, facesLoad, NULL, "faces", "Faces Project", - rleIdent, rleLoad, NULL, "rle", "Utah RLE Image", - xwdIdent, xwdLoad, NULL, "xwd", "X Window Dump", - vffIdent, vffLoad, NULL, "vff", "Sun Visualization File Format", - mcidasIdent, mcidasLoad, NULL, "mcidas", "McIDAS areafile", + {fbmIdent, fbmLoad, NULL, "fbm", "FBM Image"}, + {cmuwmIdent, cmuwmLoad, NULL, "cmuraster", "CMU WM Raster"}, + {pbmIdent, pbmLoad, pbmDump, "pbm", "Portable Bit Map (PBM, PGM, PPM)"}, + {facesIdent, facesLoad, NULL, "faces", "Faces Project"}, + {rleIdent, rleLoad, NULL, "rle", "Utah RLE Image"}, + {xwdIdent, xwdLoad, NULL, "xwd", "X Window Dump"}, + {vffIdent, vffLoad, NULL, "vff", "Sun Visualization File Format"}, + {mcidasIdent, mcidasLoad, NULL, "mcidas", "McIDAS areafile"}, #if 0 - pdsIdent, pdsLoad, NULL, "pds", "PDS/VICAR Image", + {pdsIdent, pdsLoad, NULL, "pds", "PDS/VICAR Image"}, #else - vicarIdent, vicarLoad, NULL, "vicar", "VICAR Image", + {vicarIdent, vicarLoad, NULL, "vicar", "VICAR Image"}, #endif - pcxIdent, pcxLoad, NULL, "pcx", "PC Paintbrush Image", - imgIdent, imgLoad, NULL, "gem", "GEM Bit Image", - macIdent, macLoad, NULL, "macpaint", "MacPaint Image", - xpixmapIdent, xpixmapLoad, NULL, "xpm", "X Pixmap", - xbitmapIdent, xbitmapLoad, NULL, "xbm", "X Bitmap", - NULL, NULL, NULL, NULL, NULL + {pcxIdent, pcxLoad, NULL, "pcx", "PC Paintbrush Image"}, + {imgIdent, imgLoad, NULL, "gem", "GEM Bit Image"}, + {macIdent, macLoad, NULL, "macpaint", "MacPaint Image"}, + {xpixmapIdent, xpixmapLoad, NULL, "xpm", "X Pixmap"}, + {xbitmapIdent, xbitmapLoad, NULL, "xbm", "X Bitmap"}, + {NULL, NULL, NULL, NULL, NULL} }; + +void dumpImage (Image *image, char *type, char *filename, int verbose); + +#endif /* __IMAGETYPES_H__ */ diff -urNad 06.xloadimage.tmp/img.c 06.xloadimage/img.c --- 06.xloadimage.tmp/img.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/img.c 2003-04-02 23:27:50.000000000 +0100 @@ -71,11 +71,15 @@ void (*transf) (); static int vdi2pli(); +#ifdef UNUSED_FUNCTIONS static int pli2vdi(); +#endif /* UNUSED_FUNCTIONS */ static void transf0 (); static void transf1 (); +#ifdef UNUSED_FUNCTIONS static void transf2 (); +#endif /* UNUSED_FUNCTIONS */ static void transf3 (); static void xread_img (); static void xread_line (); @@ -89,8 +93,9 @@ unsigned int ScanByteBreite, max_planes, pattern_len, plane, x, y, ByteNr, height; unsigned char *ptr, Muster[ALL_PLANES][BUFSIZ], tmp[BUFSIZ]; +#ifdef UNUSED_FUNCTIONS static unsigned char *bitplane[ALL_PLANES], *lastbitplane; - +#endif /* UNUSED_FUNCTIONS */ static void transf0(bitimage, plane, value, planes) @@ -128,7 +133,7 @@ } - +#ifdef UNUSED_FUNCTIONS static void transf2(bitimage, plane, value, planes) unsigned char *bitimage; unsigned int plane; @@ -146,6 +151,7 @@ bitplane[plane][x] = value; x++; } +#endif /* UNUSED_FUNCTIONS */ static void transf3(bitimage, plane, value, planes) unsigned char *bitimage; @@ -367,9 +373,10 @@ ZFILE *file; long size = 0; int w, h, nplanes; - char extention[5]; #if 0 + char extention[5]; + strncpy (extention, name+strlen(name)-4, 4); extention[4] = '\0'; if (strcmp(extention, ".IMG") != 0 && strcmp(extention, ".img") != 0) @@ -402,7 +409,7 @@ printf("%s is a %dx%d monochrome IMG-file\n",name , w, h); else if (nplanes != 24) - printf("%s is a %dx%d IMG-file with %ld colors\n",name , w, h, + printf("%s is a %dx%d IMG-file with %d colors\n",name , w, h, (1 << nplanes)); else printf("%s is a %dx%d %d-bit IMG-file\n",name , w, h, nplanes); @@ -564,7 +571,6 @@ ZFILE *file; long size = 0; int w, h, nplanes; - char extention[5]; if ((file = zopen(name)) == NULL) { @@ -593,7 +599,7 @@ printf("%s\n is a %dx%d ",name, w, h); if (nplanes != 24) - printf("RGB XIMG-file with %ld colors\n", 1<esiz, dir->lsiz, mc_sensor(dir->satid), @@ -163,7 +163,6 @@ struct navigation nav; Image *image; unsigned int y; - int doswap = 0 ; if (! (zf= zopen(fullname))) { perror("mcidasLoad"); @@ -218,7 +217,7 @@ */ zread(zf, image->data, dir.esiz * dir.lsiz * dir.zsiz) ; if (dir.bands > 1) - printf("Warning: Only showing first of %d bands\n", dir.bands); + printf("Warning: Only showing first of %ld bands\n", dir.bands); zclose(zf); image->title= dupString(name); diff -urNad 06.xloadimage.tmp/misc.c 06.xloadimage/misc.c --- 06.xloadimage.tmp/misc.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/misc.c 2003-04-02 23:27:50.000000000 +0100 @@ -10,6 +10,7 @@ #include "copyright.h" #include "xloadimage.h" +#include "misc.h" #ifdef VMS #include "patchlevel." #else @@ -151,7 +152,7 @@ { char errortext[BUFSIZ]; XGetErrorText(disp, error->error_code, errortext, BUFSIZ); - fprintf(stderr, "xloadimage: X Error: %s on 0x%x\n", + fprintf(stderr, "xloadimage: X Error: %s on 0x%lx\n", errortext, error->resourceid); if (_Xdebug) /* if -debug mode is enabled, dump a core when we hit this */ abort(); diff -urNad 06.xloadimage.tmp/misc.h 06.xloadimage/misc.h --- 06.xloadimage.tmp/misc.h 1970-01-01 01:00:00.000000000 +0100 +++ 06.xloadimage/misc.h 2003-04-02 23:27:50.000000000 +0100 @@ -0,0 +1 @@ +void usageHelp() __attribute__ ((noreturn)); diff -urNad 06.xloadimage.tmp/mit.cpyrght 06.xloadimage/mit.cpyrght --- 06.xloadimage.tmp/mit.cpyrght 1993-10-21 22:29:06.000000000 +0100 +++ 06.xloadimage/mit.cpyrght 2003-04-02 23:27:50.000000000 +0100 @@ -21,8 +21,10 @@ */ #ifndef __SABER__ +#ifndef LINT static char *MitCopyright= "Copyright 1989 Massachusetts Institute of Technology"; +#endif /* LINT */ #endif #define _MIT_COPYRIGHT_ #endif diff -urNad 06.xloadimage.tmp/new.c 06.xloadimage/new.c --- 06.xloadimage.tmp/new.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/new.c 2003-04-02 23:27:50.000000000 +0100 @@ -51,8 +51,8 @@ /* 28 */ 268435456, /* 29 */ 536870912, /* 30 */ 1073741824, - /* 31 */ 2147483648, - /* 32 */ 2147483648 /* bigger than unsigned int; this is good enough */ + /* 31 */ 2147483648UL, + /* 32 */ 2147483648UL /* bigger than unsigned int; this is good enough */ }; unsigned long colorsToDepth(ncolors) diff -urNad 06.xloadimage.tmp/niff.c 06.xloadimage/niff.c --- 06.xloadimage.tmp/niff.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/niff.c 2003-04-02 23:27:50.000000000 +0100 @@ -15,25 +15,26 @@ #include "niff.h" static void babble(name, header, title) + char *name; struct niff_header *header; char *title; { - printf("%s is a %dx%d ", name, + printf("%s is a %ldx%ld ", name, memToVal(header->width, 4), memToVal(header->height, 4)); if (memToVal(header->version, 4) != NIFF_VERSION) - printf("version %d ", memToVal(header->version, 4)); + printf("version %ld ", memToVal(header->version, 4)); printf("NIFF "); switch (header->type) { case NIFF_BITMAP: printf("bitmap image"); break; case NIFF_RGB: - printf("%d-bit RGB image with %d colors", + printf("%ld-bit RGB image with %ld colors", memToVal(header->depth, 4), memToVal(header->cmap_size, 4)); break; case NIFF_TRUE: - printf("%d-bit true color image", memToVal(header->depth, 4)); + printf("%ld-bit true color image", memToVal(header->depth, 4)); break; default: printf("image with an unknown type"); diff -urNad 06.xloadimage.tmp/options.c 06.xloadimage/options.c --- 06.xloadimage.tmp/options.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/options.c 2003-04-02 23:27:50.000000000 +0100 @@ -12,6 +12,8 @@ #include #include "image.h" #include "options.h" +#include "misc.h" +#include "xloadimage.h" #undef MIN #define MIN(a, b) (((a) < (b)) ? (a) : (b)) diff -urNad 06.xloadimage.tmp/options.h 06.xloadimage/options.h --- 06.xloadimage.tmp/options.h 1993-10-28 17:01:00.000000000 +0000 +++ 06.xloadimage/options.h 2003-04-02 23:27:50.000000000 +0100 @@ -8,6 +8,9 @@ * copyright information. */ +#ifndef __OPTIONS_H__ +#define __OPTIONS_H__ + /* enum with the options in it. If you add one to this you also have to * add its information to Options[] in options.c before it becomes available. */ @@ -98,3 +101,8 @@ Image *loadImage _ArgProto((OptionSet *globalopts, OptionSet *options, char *name, unsigned int verbose)); void identifyImage _ArgProto((char *name)); + +void processOptions (int argc, char *argv[], OptionSet **rglobal, OptionSet **rimage); +void addOption (OptionSet *optset, Option *newopt); + +#endif /* __OPTIONS_H__ */ diff -urNad 06.xloadimage.tmp/pcx.c 06.xloadimage/pcx.c --- 06.xloadimage.tmp/pcx.c 1993-10-28 16:22:12.000000000 +0000 +++ 06.xloadimage/pcx.c 2003-04-02 23:27:50.000000000 +0100 @@ -259,7 +259,6 @@ ZFILE *zf; Image *image; { - int pl; switch (PCXH->Zbpp) { /* What kind of plane do we have ? */ case 1 : /* Bit planes */ if (PCXH->Znplanes == 1) /* Only one : Read it */ @@ -298,7 +297,7 @@ unsigned int verbose; { ZFILE *zf; - unsigned int i, ret; + unsigned int i; int xmin; int xmax; int ymin; diff -urNad 06.xloadimage.tmp/pdsuncomp.c 06.xloadimage/pdsuncomp.c --- 06.xloadimage.tmp/pdsuncomp.c 1993-10-28 16:20:18.000000000 +0000 +++ 06.xloadimage/pdsuncomp.c 2003-04-02 23:27:50.000000000 +0100 @@ -78,7 +78,6 @@ register NODE **np; /* Node list pointer */ register long int num_freq; /* Number non-zero frequencies in histogram */ - long int sum; /* Sum of all frequencies */ register short int num_nodes; /* Counter for DN initialization */ register short int cnt; /* Miscellaneous counter */ @@ -114,6 +113,7 @@ unsigned char *cp = (unsigned char *) hist++; unsigned long int j; short int i; + j = 0; for (i=4 ; --i >= 0 ; j = (j << 8) | *(cp+i)) ; @@ -242,6 +242,7 @@ * 16-AUG-89 Kris Becker USGS, Flagstaff Original Version */ +#ifdef UNUSED_FUNCTIONS static void free_tree(nfreed) long int *nfreed; /* Return of total count of nodes freed. */ { @@ -253,6 +254,7 @@ *nfreed = free_node(tree,total_free); return; } +#endif /* UNUSED_FUNCTIONS */ /* free_node - deallocates an allocated NODE pointer * @@ -351,7 +353,6 @@ char *ibuf; { int length,result,nlen; - unsigned int value; unsigned char buf[2]; length = 0; @@ -361,7 +362,7 @@ return(length); } -skip_record(zf) +void skip_record(zf) ZFILE *zf; { unsigned int value; @@ -384,9 +385,6 @@ int type; { if (type == PDSVARIABLE) { - char buf[2]; - int len; - char *dummy; Decompressing= 1; /* flag pdsRead() to do decompressions */ diff -urNad 06.xloadimage.tmp/reduce.c 06.xloadimage/reduce.c --- 06.xloadimage.tmp/reduce.c 1993-10-21 22:28:40.000000000 +0100 +++ 06.xloadimage/reduce.c 2003-04-02 23:27:50.000000000 +0100 @@ -88,7 +88,7 @@ /* predicate functions for qsort */ -static sortRGB(p1, p2) +static int sortRGB(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -115,7 +115,7 @@ return(1); } -static sortRBG(p1, p2) +static int sortRBG(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -142,7 +142,7 @@ return(1); } -static sortGRB(p1, p2) +static int sortGRB(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -169,7 +169,7 @@ return(1); } -static sortGBR(p1, p2) +static int sortGBR(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -196,7 +196,7 @@ return(1); } -static sortBRG(p1, p2) +static int sortBRG(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -223,7 +223,7 @@ return(1); } -static sortBGR(p1, p2) +static int sortBGR(p1, p2) unsigned short *p1, *p2; { unsigned int red1, green1, blue1, red2, green2, blue2; @@ -254,7 +254,7 @@ * the color area in the list of color areas. */ -static insertColorArea(pixel_counts, rlargest, rsmallest, area) +static void insertColorArea(pixel_counts, rlargest, rsmallest, area) unsigned long *pixel_counts; struct color_area **rlargest, **rsmallest, *area; { int a; @@ -368,7 +368,7 @@ { unsigned long pixel_counts[32768]; /* pixel occurrance histogram */ unsigned short pixel_array[32768]; unsigned long count, midpoint; - int x, y, num_pixels, allocated, depth, ncolors; + int x, y, num_pixels, allocated, depth; byte *pixel, *dpixel; struct color_area *areas, *largest_area, *smallest_area; struct color_area *new_area, *old_area; diff -urNad 06.xloadimage.tmp/rle.c 06.xloadimage/rle.c --- 06.xloadimage.tmp/rle.c 1993-11-08 21:04:56.000000000 +0000 +++ 06.xloadimage/rle.c 2003-04-02 23:27:50.000000000 +0100 @@ -14,6 +14,7 @@ #include #include "image.h" #include "rle.h" +#include "rlelib.h" #undef DEBUG #undef debug @@ -394,7 +395,7 @@ #define DMAP(v,x,y) (modN[v]>magic[x][y] ? divN[v] + 1 : divN[v]) /* run the black and white through its map */ -bw_m_line(dp,number) +void bw_m_line(dp,number) int number; register unsigned char *dp; { @@ -408,7 +409,7 @@ } /* convert a colour line with map to 8 bits per pixel */ -c_m_line(dp,number,line) +void c_m_line(dp,number,line) int number,line; register unsigned char *dp; { diff -urNad 06.xloadimage.tmp/rle.h 06.xloadimage/rle.h --- 06.xloadimage.tmp/rle.h 1993-10-21 22:28:40.000000000 +0100 +++ 06.xloadimage/rle.h 2003-04-02 23:27:50.000000000 +0100 @@ -29,6 +29,9 @@ * 88/07/13 Graeme W. Gill */ +#ifndef __RLE_H__ +#define __RLE_H__ + enum sv_dispatch { RUN_DISPATCH }; @@ -182,3 +185,7 @@ extern int dith_np2; /* set non-zero to use non-power_of_2 matrix size */ extern int dith_size; /* effective size of the dither matrix chosen */ +void bw_m_line (unsigned char *dp, int number); +void c_m_line(unsigned char *dp, int number, int line); + +#endif /* __RLE_H__ */ diff -urNad 06.xloadimage.tmp/rlelib.c 06.xloadimage/rlelib.c --- 06.xloadimage.tmp/rlelib.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/rlelib.c 2003-04-02 23:27:50.000000000 +0100 @@ -17,6 +17,7 @@ #include "image.h" /* need ZFILE definition */ #include "rle.h" +#include "rlelib.h" /* SUPPRESS 530 */ /* SUPPRESS 558 */ @@ -710,11 +711,12 @@ { for ( ; *n != '\0' && *n != '=' && *n == *v; n++, v++ ) ; - if (*n == '\0' || *n == '=') + if (*n == '\0' || *n == '=') { if ( *v == '\0' ) return v; else if ( *v == '=' ) return ++v; + } return NULL; } @@ -820,7 +822,7 @@ * Algorithm: * Read in the setup info and fill in sv_globals. */ -rle_get_setup( globals ) +int rle_get_setup( globals ) struct sv_globals * globals; { struct XtndRsetup setup; @@ -1100,7 +1102,7 @@ * decoding the instructions into scanline data. */ -rle_getrow( globals, scanline ) +int rle_getrow( globals, scanline ) struct sv_globals * globals; rle_pixel *scanline[]; { @@ -1230,7 +1232,7 @@ scanc += nc; scan_x += nc; - if ( debug_f ) + if ( debug_f ) { if ( SV_BIT( *globals, channel ) ) { rle_pixel * cp = scanc - nc; @@ -1241,6 +1243,7 @@ } else fprintf( stderr, "Pixel data %d (to %d)\n", nc, scan_x ); + } break; case RRunDataOp: @@ -1586,7 +1589,7 @@ * Algorithm: * Chose sub cell of 16 by 16 magic square */ -make_magic( size, magic ) +void make_magic( size, magic ) int size; int magic[16][16]; { @@ -1630,7 +1633,7 @@ * Outputs: * Changes gamma array entries. */ -make_gamma( gamma, gammamap ) +void make_gamma( gamma, gammamap ) double gamma; int gammamap[256]; { @@ -1667,7 +1670,7 @@ * Algorithm: * see "Note:" in dithermap comment. */ -dithergb( x, y, r, g, b, levels, divN, modN, magic ) +int dithergb( x, y, r, g, b, levels, divN, modN, magic ) int divN[256]; int modN[256]; int magic[16][16]; @@ -1697,7 +1700,7 @@ * Algorithm: * see "Note:" in bwdithermap comment. */ -ditherbw( x, y, val, divN, modN, magic ) +int ditherbw( x, y, val, divN, modN, magic ) int divN[256]; int modN[256]; int magic[16][16]; diff -urNad 06.xloadimage.tmp/rlelib.h 06.xloadimage/rlelib.h --- 06.xloadimage.tmp/rlelib.h 1970-01-01 01:00:00.000000000 +0100 +++ 06.xloadimage/rlelib.h 2003-04-02 23:27:50.000000000 +0100 @@ -0,0 +1,6 @@ +#include "rle.h" + +int rle_get_setup (struct sv_globals *globals); +int rle_getrow (struct sv_globals *globals, rle_pixel *scanline[]); +void make_gamma (double gamma, int gammamap[256]); +void make_magic (int size, int magic[16][16]); diff -urNad 06.xloadimage.tmp/root.c 06.xloadimage/root.c --- 06.xloadimage.tmp/root.c 1993-11-08 21:05:20.000000000 +0000 +++ 06.xloadimage/root.c 2003-04-02 23:27:50.000000000 +0100 @@ -78,7 +78,7 @@ if ((XGetWindowProperty(dpy, w, atom, 0, 1, 1/*delete*/, AnyPropertyType, &actual_type, &format, (unsigned long *)&nitems, (unsigned long *)&bytes_after, (unsigned char **)&pm) == Success) && - nitems == 1) + nitems == 1) { if ((actual_type == XA_PIXMAP) && (format == 32) && (nitems == 1) && (bytes_after == 0)) { /* blast it away */ @@ -90,6 +90,7 @@ "%s: warning: invalid format encountered for property %s\n", RETAIN_PROP_NAME, "xloadimage"); } + } } #if FIND_DEC_ROOTWINDOW @@ -151,9 +152,11 @@ Window root, rootReturn, parentReturn, *children; unsigned int numChildren; int i; +#ifdef FIND_DEC_ROOTWINDOW char *s; +#endif /* FIND_DEC_ROOTWINDOW */ - if (opt= getOption(options, WINDOWID)) + if ((opt= getOption(options, WINDOWID))) root= opt->info.windowid; else { root = RootWindow(disp, scrn); diff -urNad 06.xloadimage.tmp/rotate.c 06.xloadimage/rotate.c --- 06.xloadimage.tmp/rotate.c 1993-10-21 22:28:41.000000000 +0100 +++ 06.xloadimage/rotate.c 2003-04-02 23:27:50.000000000 +0100 @@ -52,7 +52,6 @@ int bit[8]; /* Array of hex values */ int x, y; int i, b; - int newx, newy; int newi, newb; byte **yptr; @@ -74,6 +73,7 @@ sprintf(buf, "%s (rotated by %d degrees)", simage->title, degrees); image1 = simage; + image2 = NULL; do { degrees -= 90; switch (image1->type) { diff -urNad 06.xloadimage.tmp/send.c 06.xloadimage/send.c --- 06.xloadimage.tmp/send.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/send.c 2003-04-02 23:27:50.000000000 +0100 @@ -21,7 +21,7 @@ char buf[MAXERRORLEN+1]; GotError = 1; XGetErrorText(disp, pErrorEvent->error_code, buf, MAXERRORLEN); - printf("serial #%d (request code %d) Got Error %s\n", + printf("serial #%ld (request code %d) Got Error %s\n", pErrorEvent->serial, pErrorEvent->request_code, buf); @@ -166,6 +166,8 @@ unsigned int redbottom, greenbottom, bluebottom; unsigned int redtop, greentop, bluetop; + redtop = greentop = bluetop = 0; + redvalue= (Pixel *)lmalloc(sizeof(Pixel) * 256); greenvalue= (Pixel *)lmalloc(sizeof(Pixel) * 256); bluevalue= (Pixel *)lmalloc(sizeof(Pixel) * 256); @@ -300,7 +302,7 @@ xcolor.red= *(image->rgb.red + a); xcolor.green= *(image->rgb.green + a); xcolor.blue= *(image->rgb.blue + a); - if (! XAllocColor(disp, ximageinfo->cmap, &xcolor)) + if (! XAllocColor(disp, ximageinfo->cmap, &xcolor)) { if ((visual->class == StaticColor) || (visual->class == StaticGray) || (visual->class == TrueColor) || @@ -319,6 +321,7 @@ newmap= 1; break; } + } *(index + a)= xcolor.pixel; } } @@ -602,8 +605,6 @@ int src_x, src_y, dst_x, dst_y; unsigned int w, h; { XGCValues gcv; - int a, orig_depth; - char *orig_data; /* build and cache the GC */ diff -urNad 06.xloadimage.tmp/sunraster.c 06.xloadimage/sunraster.c --- 06.xloadimage.tmp/sunraster.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/sunraster.c 2003-04-02 23:27:50.000000000 +0100 @@ -42,7 +42,7 @@ default: printf(" unknown-type"); } - printf(" %dx%d", memToVal(header->width, 4), memToVal(header->height, 4)); + printf(" %ldx%ld", memToVal(header->width, 4), memToVal(header->height, 4)); switch (memToVal(header->depth, 4)) { case 1: @@ -256,7 +256,7 @@ /* * Handle color... */ - if (mapsize= memToVal(header.maplen, 4)) { + if ((mapsize= memToVal(header.maplen, 4))) { map= lmalloc(mapsize); if (zread(zf, map, mapsize) < mapsize) { printf("sunRasterLoad: Bad read on colormap\n"); diff -urNad 06.xloadimage.tmp/tgncpyrght.h 06.xloadimage/tgncpyrght.h --- 06.xloadimage.tmp/tgncpyrght.h 1993-10-21 22:28:42.000000000 +0100 +++ 06.xloadimage/tgncpyrght.h 2003-04-02 23:27:50.000000000 +0100 @@ -22,7 +22,9 @@ ****/ #ifndef __SABER__ +#ifndef LINT static char *TGNCopyright = "Copyright (C) 1991 Tim Northrup"; +#endif /* LINT */ #endif #define _TGN_COPYRIGHT_ #endif diff -urNad 06.xloadimage.tmp/tiff.c 06.xloadimage/tiff.c --- 06.xloadimage.tmp/tiff.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/tiff.c 2003-04-02 23:27:50.000000000 +0100 @@ -6,6 +6,7 @@ */ #include "image.h" +#include "options.h" #ifdef HAVE_LIBTIFF #include diff -urNad 06.xloadimage.tmp/uufilter.c 06.xloadimage/uufilter.c --- 06.xloadimage.tmp/uufilter.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/uufilter.c 2003-04-02 23:27:50.000000000 +0100 @@ -163,6 +163,7 @@ */ bp = &buf[1]; phase = 0; + outchar = 0; while (len > 0) { unsigned char c; diff -urNad 06.xloadimage.tmp/vff.c 06.xloadimage/vff.c --- 06.xloadimage.tmp/vff.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/vff.c 2003-04-02 23:27:50.000000000 +0100 @@ -361,7 +361,7 @@ return(0); /* so that we try and see what was wrong */ } -vffIdent(fullname, name) +int vffIdent(fullname, name) char *fullname, *name; { diff -urNad 06.xloadimage.tmp/vicar.c 06.xloadimage/vicar.c --- 06.xloadimage.tmp/vicar.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/vicar.c 2003-04-02 23:27:51.000000000 +0100 @@ -107,14 +107,12 @@ char *fullname, *name; unsigned int verbose; { - char c; - int i,j; + int i; unsigned int mapsize, size; Image *image; byte *lineptr; byte *map; byte *mapred,*mapgreen,*mapblue; - byte *buf; ZFILE *zf; if ( vicarIdent(fullname,name,verbose) == 0 ) diff -urNad 06.xloadimage.tmp/window.c 06.xloadimage/window.c --- 06.xloadimage.tmp/window.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/window.c 2003-04-02 23:27:51.000000000 +0100 @@ -227,7 +227,7 @@ int scrn; Visual *visual; { XSetWindowAttributes swa; - static cmap_atom= None; + static Atom cmap_atom= None; Window cmap_windows[2]; if (cmap_atom == None) @@ -278,7 +278,7 @@ * want to change this. */ - if (t= rindex(buf, '/')) { + if ((t= rindex(buf, '/'))) { for (s= buf, t++; *t; s++, t++) *s= *t; *s= '\0'; @@ -296,14 +296,14 @@ int class; /* numerical value of class */ char *name; /* actual name of class */ } VisualClassName[] = { - TrueColor, "TrueColor", - DirectColor, "DirectColor", - PseudoColor, "PseudoColor", - StaticColor, "StaticColor", - GrayScale, "GrayScale", - StaticGray, "StaticGray", - StaticGray, "StaticGrey", - -1, NULL + {TrueColor, "TrueColor"}, + {DirectColor, "DirectColor"}, + {PseudoColor, "PseudoColor"}, + {StaticColor, "StaticColor"}, + {GrayScale, "GrayScale"}, + {StaticGray, "StaticGray"}, + {StaticGray, "StaticGrey"}, + {-1, NULL} }; int visualClassFromName(name) @@ -393,6 +393,7 @@ * have no visuals that support that depth. seems silly to me.... */ + visual = NULL; depth= 0; screen= ScreenOfDisplay(disp, scrn); for (a= 0; a < screen->ndepths; a++) { @@ -575,19 +576,21 @@ unsigned int private_cmap; int visual_class; + oldcmap = 0; + lastx = 0; /* get values from options that we'll use a lot */ fit= (getOption(global_options, FIT) != NULL); fullscreen= (getOption(global_options, FULLSCREEN) != NULL); install= (getOption(global_options, INSTALL) != NULL); private_cmap= (getOption(global_options, PRIVATE) != NULL); - if (opt= getOption(image_options, DELAY)) + if ((opt= getOption(image_options, DELAY))) delay= opt->info.delay; - else if (opt= getOption(global_options, DELAY)) + else if ((opt= getOption(global_options, DELAY))) delay= opt->info.delay; else delay= 0; - if (opt= getOption(image_options, VISUAL)) + if ((opt= getOption(image_options, VISUAL))) visual_class= opt->info.visual; else visual_class= -1; diff -urNad 06.xloadimage.tmp/xbitmap.c 06.xloadimage/xbitmap.c --- 06.xloadimage.tmp/xbitmap.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/xbitmap.c 2003-04-02 23:27:51.000000000 +0100 @@ -247,7 +247,7 @@ char *fullname, *name; { Image *image; - if (image= xbitmapLoad(fullname, name, (unsigned int)1)) { + if ((image= xbitmapLoad(fullname, name, (unsigned int)1))) { freeImage(image); return(1); } diff -urNad 06.xloadimage.tmp/xloadimage.c 06.xloadimage/xloadimage.c --- 06.xloadimage.tmp/xloadimage.c 2003-04-02 23:28:23.000000000 +0100 +++ 06.xloadimage/xloadimage.c 2003-04-02 23:27:51.000000000 +0100 @@ -10,6 +10,8 @@ #include "copyright.h" #include "xloadimage.h" +#include "options.h" +#include "misc.h" #ifdef VMS #include "patchlevel." #define NO_FORK @@ -121,6 +123,10 @@ case ZOOM: retimage= zoom(image, option->info.zoom.x, option->info.zoom.y, verbose); break; + + default: + /* Nothing to do */ + break; } return(retimage); } @@ -167,7 +173,7 @@ /* the real thing */ -main(argc, argv) +int main(argc, argv) int argc; char *argv[]; { Option *opt; @@ -233,7 +239,7 @@ if (getOption(global_options, IDENTIFY)) { for (optset= image_options; optset; optset= optset->next) { - if (opt= getOption(optset, NAME)) + if ((opt= getOption(optset, NAME))) identifyImage(opt->info.name); } exit(0); @@ -272,7 +278,7 @@ onroot= (getOption(global_options, ONROOT) != NULL); fullscreen= (getOption(global_options, FULLSCREEN) != NULL); shrinktofit= (getOption(global_options, SHRINKTOFIT) != NULL); - if (opt= getOption(global_options, GEOMETRY)) { + if ((opt= getOption(global_options, GEOMETRY))) { winwidth= opt->info.geometry.w; winheight= opt->info.geometry.h; } @@ -354,7 +360,7 @@ /* retitle the image if we were asked to */ - if (opt= getOption(optset, TITLE)) { + if ((opt= getOption(optset, TITLE))) { if (newimage->title) lfree((byte *)newimage->title); newimage->title= dupString(opt->info.title); @@ -428,7 +434,7 @@ /* handle -at */ - if (opt= getOption(optset, AT)) + if ((opt= getOption(optset, AT))) tmpimage= merge(dispimage, newimage, opt->info.at.x, opt->info.at.y, verbose); else @@ -470,7 +476,7 @@ exit(0); case ' ': case 'n': /* next image */ - if (opt= getOption(optset->next, GOTO)) { + if ((opt= getOption(optset->next, GOTO))) { char *tag= opt->info.go_to; for (tmpset= image_options; tmpset; tmpset= tmpset->next) { @@ -539,7 +545,7 @@ for (optset= image_options; optset && optset->next; optset= optset->next) /* EMPTY */ ; - if (opt= getOption(optset, NAME)) { + if ((opt= getOption(optset, NAME))) { if (dispimage->title) lfree((byte *)dispimage->title); dispimage->title= dupString(opt->info.title); diff -urNad 06.xloadimage.tmp/xloadimage.h 06.xloadimage/xloadimage.h --- 06.xloadimage.tmp/xloadimage.h 1993-10-28 16:26:55.000000000 +0000 +++ 06.xloadimage/xloadimage.h 2003-04-02 23:27:51.000000000 +0100 @@ -38,6 +38,7 @@ */ void supportedImageTypes(); /* imagetypes.c */ +void dumpImage(); char *tail(); /* misc.c */ void memoryExhausted(); @@ -47,6 +48,9 @@ void goodImage(); int errorHandler(); +void showConfiguration(); /* config.c */ +void listImages(); + char *expandPath(); /* path.c */ int findImage(); void listImages(); diff -urNad 06.xloadimage.tmp/xpixmap.c 06.xloadimage/xpixmap.c --- 06.xloadimage.tmp/xpixmap.c 1993-10-21 22:28:44.000000000 +0100 +++ 06.xloadimage/xpixmap.c 2003-04-02 23:27:51.000000000 +0100 @@ -54,6 +54,8 @@ int c; byte *dptr; + cpp = 0; + if (! (zf= zopen(fullname))) return(NULL); @@ -112,7 +114,7 @@ return(NULL); } - if (p= rindex(what, '_')) { /* get the name in the image if there is */ + if ((p= rindex(what, '_'))) { /* get the name in the image if there is */ *p= '\0'; /* one */ imagetitle= dupString(what); } @@ -190,7 +192,7 @@ break; } - if (p= rindex(what, '_')) + if ((p= rindex(what, '_'))) p++; else p= what; @@ -234,7 +236,7 @@ char *fullname, *name; { Image *image; - if (image= xpixmapLoad(fullname, name, (unsigned int)1)) { + if ((image= xpixmapLoad(fullname, name, (unsigned int)1))) { freeImage(image); return(1); } diff -urNad 06.xloadimage.tmp/xwd.c 06.xloadimage/xwd.c --- 06.xloadimage.tmp/xwd.c 1993-10-21 22:28:44.000000000 +0100 +++ 06.xloadimage/xwd.c 2003-04-02 23:27:51.000000000 +0100 @@ -418,6 +418,8 @@ Image *image; int a; + image = NULL; + if (! (zf= zopen(fullname))) return(NULL); if (! isXWD(name, zf, &header, verbose)) { diff -urNad 06.xloadimage.tmp/zoom.c 06.xloadimage/zoom.c --- 06.xloadimage.tmp/zoom.c 1993-10-21 22:28:44.000000000 +0100 +++ 06.xloadimage/zoom.c 2003-04-02 23:27:51.000000000 +0100 @@ -53,6 +53,8 @@ byte srcmask, destmask, bit; Pixel value; + image = NULL; + goodImage(oimage, "zoom"); if (!xzoom && !yzoom) /* stupid user */ debian/patches/series0000644000000000000000000000134112223051253012024 0ustar 01_libjpeg-support.patch 02_png-support.patch 03_security-strfoo.patch 04_previous-image.patch 05_idelay-manpage.patch 06_-Wall-cleanup.patch 07_SYSPATHFILE.patch 08_manpage-config-path.patch 09_xloadimagerc-path.patch 10_config.c-HOME-fix.patch 11_fork-implies-quiet.patch 12_fix-tile.patch 13_varargs-is-obsolete.patch 14_errno-not-extern.patch 15_CAN-2005-0638.patch 16_CAN-2005-0639.patch 17_security-sprintf.patch 18_manpage_fixes.patch 19_fix_root_c_resource_leak.patch 20_patch.patch 21_libpng.patch 22-include.patch 23_jpeg.c-build-fix.patch 25_hardening-flags.patch 26_uufilter-implicit-declaration.patch 27_shrink-should-not-zoom-upwards.patch 28_correct-scaling-fullscreen.patch 29_fix-manpage-hyphens.patch 30_libtiff5.patch debian/patches/13_varargs-is-obsolete.patch0000644000000000000000000000111311741321713016025 0ustar From: James Troup Subject: is obsolete and no longer supported by gcc-3.3. ... and more to the point rlelib.c doesn't actually need it. diff -urNad /home/james/debian/packages/xloadimage/xloadimage-4.1/rlelib.c xloadimage-4.1/rlelib.c --- /home/james/debian/packages/xloadimage/xloadimage-4.1/rlelib.c 2003-06-06 03:32:44.000000000 +0100 +++ xloadimage-4.1/rlelib.c 2003-06-06 03:33:00.000000000 +0100 @@ -12,7 +12,6 @@ #include #include -#include #include #include "image.h" /* need ZFILE definition */ debian/patches/02_png-support.patch0000755000000000000000000015625411741321713014455 0ustar From: Yoshida Hiroshi Subject: Add support for PNG images and other misc fixes. diff -urNad xloadimage-4.1~/Makefile.in xloadimage-4.1/Makefile.in --- xloadimage-4.1~/Makefile.in 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/Makefile.in 2005-12-06 02:59:07.000000000 +0000 @@ -5,7 +5,7 @@ CC = @CC@ DEFS = @DEFS@ CFLAGS = @CFLAGS@ -XLIB = @X_LIBS@ @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@ +XLIB = @X_LIBS@ -lX11 @X_EXTRA_LIBS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ @@ -14,7 +14,7 @@ mac.c mc_tables.c mcidas.c merge.c misc.c new.c niff.c options.c \ pbm.c pcx.c pdsuncomp.c reduce.c rle.c rlelib.c root.c rotate.c \ send.c smooth.c sunraster.c tiff.c undither.c value.c vff.c \ -vicar.c window.c xbitmap.c xloadimage.c xpixmap.c xwd.c zio.c zoom.c +vicar.c window.c xbitmap.c xloadimage.c xpixmap.c xwd.c zio.c zoom.c png.c OBJS = $(SRCS:.c=.o) PROG = xloadimage @@ -24,7 +24,7 @@ $(PROG): $(OBJS) ./build-info $(CC) $(CFLAGS) -c $(DEFS) build.c - $(CC) -o $@ $(OBJS) build.o$(LDFLAGS) $(XLIB) $(LIBS) + $(CC) -o $@ $(OBJS) build.o $(LDFLAGS) $(XLIB) $(LIBS) uufilter: uufilter.c $(CC) $(CFLAGS) $(DEFS) uufilter.c -o $@ @@ -34,8 +34,13 @@ build.c: ./build-info + clean: - rm -f $(PROG) uufilter build.c *.o + rm -f autoconfig build.c err +# cd jpeg ; make clean +# cd tiff ; make clean + rm -f *.o *~ xloadimage uufilter autoconfig libconfig packtar \ + buildshar doshar shar.* *.tar *.tar.Z *.tc distclean: make clean diff -urNad xloadimage-4.1~/bright.c xloadimage-4.1/bright.c --- xloadimage-4.1~/bright.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/bright.c 2005-12-06 02:59:07.000000000 +0000 @@ -73,9 +73,10 @@ double disp_gam; unsigned int verbose; { int a; - int gammamap[256]; - unsigned int size; + static int gammamap[256]; byte *destptr; + const byte *endptr, *srcptr; + static double old_gamma = -1.0; goodImage(image, "gammacorrect"); if (BITMAPP(image)) /* we're AT&T */ @@ -86,7 +87,9 @@ fflush(stdout); } - make_gamma(disp_gam,gammamap); + if( disp_gam != old_gamma) + make_gamma(disp_gam,gammamap); + old_gamma = disp_gam; switch (image->type) { case IRGB: @@ -98,12 +101,13 @@ break; case ITRUE: - size= image->width * image->height * 3; - destptr= image->data; - for (a= 0; a < size; a++) { - *destptr= gammamap[*destptr]; - destptr++; - } + srcptr = destptr = image->data; + endptr = destptr + image->width * image->height * 3; + do { + *destptr++ = gammamap[*srcptr++]; + *destptr++ = gammamap[*srcptr++]; + *destptr++ = gammamap[*srcptr++]; + } while (srcptr < endptr); break; } diff -urNad xloadimage-4.1~/compress.c xloadimage-4.1/compress.c --- xloadimage-4.1~/compress.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/compress.c 2005-12-06 02:59:07.000000000 +0000 @@ -30,7 +30,7 @@ #define NIL_PIXEL 0xffffffff -void compress(image, verbose) +void compress_cmap(image, verbose) Image *image; unsigned int verbose; { Pixel hash_table[32768]; diff -urNad xloadimage-4.1~/config.c xloadimage-4.1/config.c --- xloadimage-4.1~/config.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/config.c 2005-12-06 02:59:07.000000000 +0000 @@ -17,7 +17,7 @@ #include #endif #include -#ifndef IS_BSD +#ifdef HAVE_UNISTD_H #include #endif diff -urNad xloadimage-4.1~/config.h.in xloadimage-4.1/config.h.in --- xloadimage-4.1~/config.h.in 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/config.h.in 2005-12-06 02:59:07.000000000 +0000 @@ -9,9 +9,6 @@ /* Define if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING -/* Define if you have the mkdir function. */ -#undef HAVE_MKDIR - /* Define if you have the select function. */ #undef HAVE_SELECT @@ -27,14 +24,17 @@ /* Define if you have the header file. */ #undef HAVE_UNISTD_H -/* Define if you have the jpeg library (-ljpeg). */ -#undef HAVE_LIBJPEG - /* Define if you have the m library (-lm). */ #undef HAVE_LIBM +/* Define if you have the jpeg library (-ljpeg). */ +#undef HAVE_LIBJPEG + /* Define if you have the tiff library (-ltiff). */ #undef HAVE_LIBTIFF +/* Define if you have the png library (-lpng). */ +#undef HAVE_LIBPNG + /* Define if you have the z library (-lz). */ #undef HAVE_LIBZ diff -urNad xloadimage-4.1~/configure xloadimage-4.1/configure --- xloadimage-4.1~/configure 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/configure 2005-12-06 02:59:07.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -51,6 +51,7 @@ # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 @@ -334,7 +335,7 @@ verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12" + echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) @@ -504,9 +505,11 @@ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross +ac_exeext= +ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then @@ -525,15 +528,16 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:529: checking for $ac_word" >&5 +echo "configure:532: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" @@ -554,16 +558,17 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:558: checking for $ac_word" >&5 +echo "configure:562: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no - for ac_dir in $PATH; do + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then @@ -598,25 +603,61 @@ echo "$ac_t""no" 1>&6 fi + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:613: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:606: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:645: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross -cat > conftest.$ac_ext < conftest.$ac_ext << EOF + +#line 656 "configure" #include "confdefs.h" + main(){return(0);} EOF -if { (eval echo configure:620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -630,18 +671,24 @@ ac_cv_prog_cc_works=no fi rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:640: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:687: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:645: checking whether we are using GNU C" >&5 +echo "configure:692: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -650,7 +697,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:701: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -661,11 +708,15 @@ if test $ac_cv_prog_gcc = yes; then GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:669: checking whether ${CC-cc} accepts -g" >&5 +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:720: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -680,21 +731,25 @@ fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then CFLAGS="-g -O2" else - CFLAGS="-O2" + CFLAGS="-g" fi else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:698: checking how to run the C preprocessor" >&5 +echo "configure:753: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -709,14 +764,14 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:774: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -726,14 +781,31 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:808: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -746,6 +818,8 @@ rm -f conftest* fi rm -f conftest* +fi +rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" @@ -759,7 +833,7 @@ # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:763: checking for X" >&5 +echo "configure:837: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -821,13 +895,13 @@ # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:830: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* # We can compile using X headers with no special include directory. @@ -895,14 +969,14 @@ ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -1008,17 +1082,17 @@ case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:1012: checking whether -R must be followed by a space" >&5 +echo "configure:1086: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -1034,14 +1108,14 @@ else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -1073,7 +1147,7 @@ # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:1077: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:1151: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1081,7 +1155,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1114,7 +1188,7 @@ if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:1118: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:1192: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1122,7 +1196,7 @@ ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1162,12 +1236,12 @@ # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:1166: checking for gethostbyname" >&5 +echo "configure:1240: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -1211,7 +1285,7 @@ if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:1215: checking for gethostbyname in -lnsl" >&5 +echo "configure:1289: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1219,7 +1293,7 @@ ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1260,12 +1334,12 @@ # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:1264: checking for connect" >&5 +echo "configure:1338: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -1309,7 +1383,7 @@ if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:1313: checking for connect in -lsocket" >&5 +echo "configure:1387: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1317,7 +1391,7 @@ ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1352,12 +1426,12 @@ # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:1356: checking for remove" >&5 +echo "configure:1430: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -1401,7 +1475,7 @@ if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:1405: checking for remove in -lposix" >&5 +echo "configure:1479: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1409,7 +1483,7 @@ ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1444,12 +1518,12 @@ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:1448: checking for shmat" >&5 +echo "configure:1522: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -1493,7 +1567,7 @@ if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:1497: checking for shmat in -lipc" >&5 +echo "configure:1571: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1501,7 +1575,7 @@ ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1545,15 +1619,15 @@ # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:1549: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:1623: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lICE $LIBS" +LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1589,12 +1663,12 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1593: checking for ANSI C header files" >&5 +echo "configure:1667: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1602,8 +1676,8 @@ #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1606: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* ac_cv_header_stdc=yes @@ -1619,7 +1693,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1637,7 +1711,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1658,7 +1732,7 @@ : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1669,7 +1743,7 @@ exit (0); } EOF -if { (eval echo configure:1673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1696,18 +1770,18 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1700: checking for $ac_hdr" >&5 +echo "configure:1774: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" @@ -1734,7 +1808,7 @@ echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:1738: checking for main in -lm" >&5 +echo "configure:1812: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1742,14 +1816,14 @@ ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1777,7 +1851,7 @@ fi echo $ac_n "checking for main in -lz""... $ac_c" 1>&6 -echo "configure:1781: checking for main in -lz" >&5 +echo "configure:1855: checking for main in -lz" >&5 ac_lib_var=`echo z'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1785,14 +1859,14 @@ ac_save_LIBS="$LIBS" LIBS="-lz $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1819,8 +1893,51 @@ echo "$ac_t""no" 1>&6 fi +echo $ac_n "checking for main in -lpng""... $ac_c" 1>&6 +echo "configure:1898: checking for main in -lpng" >&5 +ac_lib_var=`echo png'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lpng $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo png | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + echo $ac_n "checking for main in -ljpeg""... $ac_c" 1>&6 -echo "configure:1824: checking for main in -ljpeg" >&5 +echo "configure:1941: checking for main in -ljpeg" >&5 ac_lib_var=`echo jpeg'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1828,14 +1945,14 @@ ac_save_LIBS="$LIBS" LIBS="-ljpeg $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1863,7 +1980,7 @@ fi echo $ac_n "checking for main in -ltiff""... $ac_c" 1>&6 -echo "configure:1867: checking for main in -ltiff" >&5 +echo "configure:1984: checking for main in -ltiff" >&5 ac_lib_var=`echo tiff'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1871,14 +1988,14 @@ ac_save_LIBS="$LIBS" LIBS="-ltiff $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1909,12 +2026,12 @@ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:1913: checking return type of signal handlers" >&5 +echo "configure:2030: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1931,7 +2048,7 @@ int i; ; return 0; } EOF -if { (eval echo configure:1935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -1952,12 +2069,12 @@ for ac_func in mkdir select do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1956: checking for $ac_func" >&5 +echo "configure:2073: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2028,7 +2145,7 @@ # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | - case `(ac_space=' '; set) 2>&1` in + case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). @@ -2095,7 +2212,7 @@ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12" + echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; @@ -2114,9 +2231,11 @@ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF $ac_vpsub $extrasub +s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g diff -urNad xloadimage-4.1~/configure.in xloadimage-4.1/configure.in --- xloadimage-4.1~/configure.in 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/configure.in 2005-12-06 02:59:07.000000000 +0000 @@ -15,6 +15,8 @@ AC_CHECK_LIB(m, main) dnl Replace `main' with a function in -lz: AC_CHECK_LIB(z, main) +dnl Replace `main' with a function in -lpng: +AC_CHECK_LIB(png, main) dnl Replace `main' with a function in -ljpeg: AC_CHECK_LIB(jpeg, main) dnl Replace `main' with a function in -ltiff: @@ -25,6 +27,6 @@ dnl Checks for library functions. AC_TYPE_SIGNAL -AC_CHECK_FUNCS(mkdir select) +AC_CHECK_FUNCS(select) AC_OUTPUT(Makefile) diff -urNad xloadimage-4.1~/image.h xloadimage-4.1/image.h --- xloadimage-4.1~/image.h 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/image.h 2005-12-06 02:59:07.000000000 +0000 @@ -18,15 +18,12 @@ /* ANSI-C stuff */ -#if defined(__STDC__) - +#ifdef STDC_HEADERS #if !defined(_ArgProto) #define _ArgProto(ARGS) ARGS #endif - #include - -#else /* !__STDC__ */ +#else /* !STDC_HEADERS */ #if !defined(const) /* "const" is an ANSI thing */ #define const @@ -35,26 +32,14 @@ #define _ArgProto(ARGS) () #endif -#endif /* !__STDC__ */ +#endif /* !STDC_HEADERS */ /* handle strings stuff that varies between BSD and ANSI/SYSV */ -#if defined(IS_BSD) && !defined(__STDC__) -#include -#if !defined(strchr) && !defined(index) -#define strchr index -#endif -#if !defined(strrchr) && !defined(rindex) -#define strrchr rindex -#endif -#if !defined(memcpy) && !defined(bcopy) -#define memcpy(D,S,L) bcopy((char *)(S),(char *)(D),(L)) -#endif -#if !defined(memset) && !defined(bzero) -/* #define memset(D,V,L) bzero(D,L) */ -#endif -#else /* !IS_BSD || __STDC__ */ #include +#ifdef HAVE_STRINGS_H +#include +#else /* !HAVE_STRINGS_H */ #if !defined(index) && !defined(strchr) #define index strchr #endif @@ -67,7 +52,7 @@ #if !defined(bzero) && !defined(memset) #define bzero(D,L) memset((void *)(D),0,(L)) #endif -#endif /* !IS_BSD || __STDC__ */ +#endif /* !HAVE_STRINGS_H */ #ifdef VMS #define R_OK 4 @@ -234,7 +219,7 @@ Image *normalize _ArgProto((Image *image, unsigned int verbose)); /* compress.c */ -void compress _ArgProto((Image *image, unsigned int verbose)); +void compress_cmap _ArgProto((Image *image, unsigned int verbose)); /* dither.c */ Image *dither _ArgProto((Image *image, unsigned int verbose)); diff -urNad xloadimage-4.1~/imagetypes.h xloadimage-4.1/imagetypes.h --- xloadimage-4.1~/imagetypes.h 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/imagetypes.h 2005-12-06 02:59:07.000000000 +0000 @@ -34,6 +34,9 @@ #ifdef HAVE_LIBTIFF Image *tiffLoad(); #endif +#ifdef HAVE_LIBPNG +Image *pngLoad(); +#endif int niffIdent(); int facesIdent(); @@ -62,6 +65,9 @@ #ifdef HAVE_LIBTIFF int tiffIdent(); #endif +#ifdef HAVE_LIBPNG +int pngIdent(); +#endif void niffDump(); #ifdef HAVE_LIBJPEG @@ -91,6 +97,9 @@ #ifdef HAVE_LIBTIFF tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image", #endif +#ifdef HAVE_LIBPNG + pngIdent, pngLoad, NULL, "png", "PNG image", +#endif fbmIdent, fbmLoad, NULL, "fbm", "FBM Image", cmuwmIdent, cmuwmLoad, NULL, "cmuraster", "CMU WM Raster", pbmIdent, pbmLoad, pbmDump, "pbm", "Portable Bit Map (PBM, PGM, PPM)", diff -urNad xloadimage-4.1~/new.c xloadimage-4.1/new.c --- xloadimage-4.1~/new.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/new.c 2005-12-06 02:59:07.000000000 +0000 @@ -10,6 +10,9 @@ #include "copyright.h" #include "image.h" +#ifdef HAVE_MALLOC_H +#include +#endif extern int _Xdebug; diff -urNad xloadimage-4.1~/niff.c xloadimage-4.1/niff.c --- xloadimage-4.1~/niff.c 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/niff.c 2005-12-06 02:59:07.000000000 +0000 @@ -8,8 +8,10 @@ * this is in the public domain. */ -#include #include "image.h" +#ifdef HAVE_UNISTD_H +#include +#endif #include "niff.h" static void babble(name, header, title) diff -urNad xloadimage-4.1~/options.c xloadimage-4.1/options.c --- xloadimage-4.1~/options.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/options.c 2005-12-06 02:59:07.000000000 +0000 @@ -731,6 +731,11 @@ if (++a >= argc) optionUsage(GAMMA); newopt->info.gamma= getFloat(GAMMA, argv[a]); + if (newopt->info.gamma < 0.0) { + fprintf(stderr, "Argument to %s must be over 0.0 (ignored)\n", + optionName(GAMMA)); + newopt->type= OPT_IGNORE; + } break; case GOTO: diff -urNad xloadimage-4.1~/png.c xloadimage-4.1/png.c --- xloadimage-4.1~/png.c 1970-01-01 00:00:00.000000000 +0000 +++ xloadimage-4.1/png.c 2005-12-06 02:59:07.000000000 +0000 @@ -0,0 +1,350 @@ +/* + * PNG - Portable Network Graphics + * + * Alpha channle is linear. + * Color \ Bit Depth 1 2 4 8 16 palette bKGD + * PNG_COLOR_TYPE_PALETTE O O O O must 8 bit + * PNG_COLOR_TYPE_GRAY O O O O O 16 + * PNG_COLOR_TYPE_GRAY_ALPHA O O 16 + * PNG_COLOR_TYPE_RGB O O possible 16 * 3 + * PNG_COLOR_TYPE_RGB_ALPHA O O possible 16 * 3 + * + * This code is based on jpeg.c and sample code from the libpng-1.0.5. + * 2000/01/10: YOSHIDA Hiroshi + * + * TODO: + * pngLoad(): Alpha channel, Transparency palette. + * pngDump(): Dump. + * + */ + + +#include "image.h" /* xloadimage declarations */ +#ifdef HAVE_LIBPNG +#include "options.h" +#include +#include + +#undef DEBUG +/* #define DEBUG */ +#undef debug + +#ifdef DEBUG +# define debug(xx) fprintf(stderr,xx) +#else +# define debug(xx) +#endif + +#define PNG_BYTES_TO_CHECK 4 + +static Image *image; /* xloadimage image being returned */ +static ZFILE *zinput_file; +static char *filename; + +int pngIdent(char *fullname, char *name); +Image *pngLoad(char *fullname, char *name, unsigned int verbose); +/* void pngDump(Image *image, char *options, char *file, int verbose); */ + + +/* + * png read handler + */ +static void png_read_data(png_structp png_ptr, + png_bytep data, png_size_t length) +{ + if (zread(zinput_file, data, length) != length) + png_error(png_ptr, "Read Error"); +} + + +/* + * png warn handler + */ +static void output_warn(png_structp png_ptr, png_const_charp str) +{ + debug(" #warn "); + fprintf(stderr, " PNG file: %s - %s\n", filename, str); + fflush(stderr); +} + + +/* + * png error handler + */ +static void output_error(png_structp png_ptr, png_const_charp str) +{ + debug(" #error "); + output_warn( png_ptr, str); + longjmp(png_ptr->jmpbuf, 1); /* return control to outer routine */ +} + + +static const char *pngColor(int color_type) +{ + const char *str; + + switch (color_type) { + case PNG_COLOR_TYPE_GRAY: + str = "GRAY"; + break; + case PNG_COLOR_TYPE_GRAY_ALPHA: + str = "GRAY_ALPHA"; + break; + case PNG_COLOR_TYPE_PALETTE: + str = "PALETTE"; + break; + case PNG_COLOR_TYPE_RGB: + str = "RGB"; + break; + case PNG_COLOR_TYPE_RGB_ALPHA: + str = "RGB_ALPHA"; + break; + default: + str = "UNKNOWN_COLOR_TYPE"; + } + return str; +} + + +static const char *pngInterlace(int interlace_type) +{ + const char *str; + + switch (interlace_type) { + case PNG_INTERLACE_NONE: + str = "NONE"; + break; + case PNG_INTERLACE_ADAM7: + str = "ADAM7"; + break; + default: + str = "UNKNOWN_TYPE"; + } + return str; +} + + +/* + * Output PNG file infomation. + */ +static void pngInfo( png_uint_32 width, png_uint_32 height, + int bit_depth, int color_type, int interlace_type, + double file_gamma) +{ + printf("%s is %ldx%ld PNG image, color type %s, %d bit", + filename, width, height, pngColor(color_type), bit_depth); + if( interlace_type != PNG_INTERLACE_NONE) + printf(", interlace %s", pngInterlace(interlace_type)); + if( file_gamma >= 0.0) + printf(", file gamma %.4f", file_gamma); + putchar('\n'); +} + + +/* + * pngIdent(), pngLoad() + * Read PNG header & allocate png's struct: + * return 1: success + */ +static int pngHeader(png_structpp png_pp, + png_infopp info_pp, png_infopp end_pp) +{ + *info_pp = *end_pp = NULL; + *png_pp = png_create_read_struct(PNG_LIBPNG_VER_STRING, + NULL, output_error, output_warn); + if (!*png_pp) + return 0; + *info_pp = png_create_info_struct(*png_pp); + if (!*info_pp) { + png_destroy_read_struct(png_pp, info_pp, end_pp); + return 0; + } + *end_pp = png_create_info_struct(*png_pp); + if (!*end_pp) { + png_destroy_read_struct(png_pp, info_pp, end_pp); + return 0; + } + if (setjmp((*png_pp)->jmpbuf)) { + /* On error */ + png_destroy_read_struct(png_pp, info_pp, end_pp); + return 0; + } + png_set_sig_bytes(*png_pp, PNG_BYTES_TO_CHECK); + png_set_read_fn(*png_pp, NULL, png_read_data); + png_read_info(*png_pp, *info_pp); + + return 1; +} + + +/* + * return !0: It is a PNG. + */ +static int is_png(ZFILE *zf) +{ + byte png_read_buff[PNG_BYTES_TO_CHECK]; + + /* Read in some of the signature bytes */ + if (zread(zf, png_read_buff,PNG_BYTES_TO_CHECK) != PNG_BYTES_TO_CHECK) + return 0; + return !png_sig_cmp(png_read_buff, (png_size_t)0, PNG_BYTES_TO_CHECK); +} + + +/* + * Main control routine for identifying PNG without loading + * return 1: PNG file. + */ +int pngIdent(char *fullname, char *name) +{ + png_structp png_ptr; + png_infop info_ptr, end_info; + png_uint_32 width, height; + int color_type, bit_depth, interlace_type; + double file_gamma; + + zinput_file = zopen(fullname); + if (zinput_file == NULL) { + zclose(zinput_file); + return 0; + } + /* check at early timing */ + if (is_png(zinput_file) == 0) { + zclose(zinput_file); + return 0; + } + filename = name; + + /* read infomation header */ + if (!pngHeader(&png_ptr, &info_ptr, &end_info)) { + zclose(zinput_file); + return 0; + } + if (setjmp(png_ptr->jmpbuf)) { + /* On error */ + freeImage(image); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + zclose(zinput_file); + return 0; + } + png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, + &color_type, &interlace_type, NULL, NULL); + if(!png_get_gAMA( png_ptr, info_ptr, &file_gamma)) + file_gamma = -1.0; + /* print out PNG infomation */ + pngInfo( width, height, bit_depth, color_type, interlace_type, file_gamma); + + znocache(zinput_file); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + zclose(zinput_file); + return 1; +} + + +/* + * Main control routine for loading + */ +Image *pngLoad(char *fullname, char *name, unsigned int verbose) +{ + png_structp png_ptr; + png_infop info_ptr, end_info; + png_colorp palette; + png_color_16p background; + png_bytep bufp, *row_pointers; + png_uint_32 width, height; + int i, row_stride, color_type, bit_depth, num_palette, interlace_type; + double file_gamma; + + zinput_file = zopen(fullname); + if (zinput_file == NULL) { + zclose(zinput_file); + return NULL; + } + /* check at early timing */ + if (is_png(zinput_file) == 0) { + zclose(zinput_file); + return NULL; + } + filename = name; + + /* read infomation header */ + if (!pngHeader(&png_ptr, &info_ptr, &end_info)) { + zclose(zinput_file); + return NULL; + } + png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, + &color_type, &interlace_type, NULL, NULL); + if(!png_get_gAMA( png_ptr, info_ptr, &file_gamma)) + file_gamma = -1.0; + /* print out PNG infomation */ + if (verbose) + pngInfo( width, height, bit_depth, color_type, interlace_type, file_gamma); + znocache(zinput_file); + image = NULL; + + if (file_gamma <= 0.0) + file_gamma = 1.0; + png_set_gamma(png_ptr, 1.0, file_gamma); + if (bit_depth > 8) + png_set_strip_16(png_ptr); /* 16 bit -> 8 bit */ + /* if (color_type & PNG_COLOR_MASK_ALPHA) */ + png_set_strip_alpha(png_ptr); + if (png_get_bKGD(png_ptr, info_ptr, &background)) + png_set_background(png_ptr, background, file_gamma, 1, 1.0); + switch (color_type) { + case PNG_COLOR_TYPE_PALETTE: + if (bit_depth < 8) + png_set_packing(png_ptr); /* 1 pixlel 1 byte */ + image = newRGBImage(width, height, 8); + png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette); + image->rgb.used = num_palette; + for (i = 0; i < num_palette; i++) { + *(image->rgb.red + i) = palette->red << 8; + *(image->rgb.green + i) = palette->green << 8; + *(image->rgb.blue + i) = palette->blue << 8; + palette++; + } + break; + case PNG_COLOR_TYPE_GRAY_ALPHA: + case PNG_COLOR_TYPE_GRAY: + if (bit_depth < 8) + png_set_gray_1_2_4_to_8(png_ptr); /* 1 pixlel 1 byte */ + image = newRGBImage(width, height, 8); + image->rgb.used = 256; + for (i = 0; i < 256; i++) { + *(image->rgb.red + i) = + *(image->rgb.green + i) = + *(image->rgb.blue + i) = i << 8; + } + break; + case PNG_COLOR_TYPE_RGB_ALPHA: + case PNG_COLOR_TYPE_RGB: + image = newTrueImage(width, height); + break; + default: + fprintf(stderr, "Unknown color type PNG."); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + zclose(zinput_file); + return NULL; + } + image->title = dupString(filename); + + bufp = image->data; + png_read_update_info(png_ptr, info_ptr); + row_stride = png_get_rowbytes(png_ptr, info_ptr); + row_pointers = (png_bytep *)lmalloc(sizeof(png_bytep) * height); + for (i = 0; i < height; i++) { + *(row_pointers + i) = bufp; + bufp += row_stride; + } + png_read_image(png_ptr, row_pointers); + lfree((byte *)row_pointers); + png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); + zclose(zinput_file); + + return image; +} + +#else /* !HAVE_LIBPNG */ +static int unused; +#endif /* !HAVE_LIBPNG */ diff -urNad xloadimage-4.1~/send.c xloadimage-4.1/send.c --- xloadimage-4.1~/send.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/send.c 2005-12-06 02:59:07.000000000 +0000 @@ -255,7 +255,7 @@ default: retry: /* this tag is used when retrying because we couldn't get a fit */ - compress(image, verbose); + compress_cmap(image, verbose); index= (Pixel *)lmalloc(sizeof(Pixel) * image->rgb.used); diff -urNad xloadimage-4.1~/vff.c xloadimage-4.1/vff.c --- xloadimage-4.1~/vff.c 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/vff.c 2005-12-06 02:59:07.000000000 +0000 @@ -150,7 +150,7 @@ op = image->data; skip = bands - 3; linewidth = bands * width; - buf = (unsigned char *)malloc((unsigned)linewidth); + buf = (unsigned char *)lmalloc((unsigned)linewidth); if (buf == NULL) { memoryExhausted(); } @@ -337,7 +337,7 @@ return(0); } - if ((header[lines] = (char *)malloc((unsigned)count+1)) == NULL) { + if ((header[lines] = (char *)lmalloc((unsigned)count+1)) == NULL) { memoryExhausted(); } bcopy(buf, header[lines], count); diff -urNad xloadimage-4.1~/vicar.c xloadimage-4.1/vicar.c --- xloadimage-4.1~/vicar.c 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/vicar.c 2005-12-06 02:59:07.000000000 +0000 @@ -12,7 +12,6 @@ #define SAMPLES label[6] #include -#include #include "image.h" #include diff -urNad xloadimage-4.1~/window.c xloadimage-4.1/window.c --- xloadimage-4.1~/window.c 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/window.c 2005-12-06 02:59:07.000000000 +0000 @@ -15,23 +15,21 @@ #include #include #include +#ifdef HAVE_UNISTD_H +#include +#endif +#ifdef HAVE_SYS_TIME_H #include +#endif +#ifdef HAVE_SELECT +#define ENABLE_TIMEOUT +#include +#else /* !HAVE_SELECT */ #ifdef HAS_POLL #include -#else /* !HAS_POLL */ -#ifdef HAS_SELECT_INCLUDE -#include -#endif /* HAS_SELECT_INCLUDE */ -#endif /* !HAS_POLL */ - -/* we can use timeouts if either select() or poll() are available. - */ -#if IS_BSD #define ENABLE_TIMEOUT -#endif -#if defined(HAS_SELECT_INCLUDE) || defined(HAS_POLL) -#define ENABLE_TIMEOUT -#endif +#endif /* !HAS_POLL */ +#endif /* !HAVE_SELECT */ /* SUPPRESS 560 */ diff -urNad xloadimage-4.1~/xloadimage.c xloadimage-4.1/xloadimage.c --- xloadimage-4.1~/xloadimage.c 2005-12-06 02:59:07.000000000 +0000 +++ xloadimage-4.1/xloadimage.c 2005-12-06 02:59:07.000000000 +0000 @@ -16,6 +16,9 @@ #else #include "patchlevel" #endif +#ifdef HAVE_UNISTD_H +#include +#endif #include char *ProgramName= "xloadimage"; diff -urNad xloadimage-4.1~/xloadimagerc xloadimage-4.1/xloadimagerc --- xloadimage-4.1~/xloadimagerc 2005-12-06 02:59:04.000000000 +0000 +++ xloadimage-4.1/xloadimagerc 2005-12-06 03:11:46.000000000 +0000 @@ -14,6 +14,7 @@ .pbm .pgm .ppm # PBMPLUS .img # GEM IMG .pcx # PCX image + .png # PNG image # add uufilter for automatic uudecoding of files ending in .uu or .uue filter = "uufilter -s" .uu .uue debian/patches/27_shrink-should-not-zoom-upwards.patch0000644000000000000000000000131612221757662020216 0ustar Description: Do not resize images that are smaller than the screen with -shrink Shrink does also zoom upwards for images which are smaller than the screen. The following patch fixes this, images smaller as the screen are left at 100% zoom. Author: David Frey Forwarded: no Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=381382 --- a/xloadimage.c +++ b/xloadimage.c @@ -408,6 +408,9 @@ int main(argc, argv) / (float)newimage->width * 100.0 : ((float)DisplayHeight(disp, scrn) * 0.9) / (float)newimage->height * 100.0); + if ((opt->info.zoom.x > 100) || (opt->info.zoom.y > 100)) + opt->info.zoom.x=opt->info.zoom.y=100; + addOption(optset, opt); } debian/patches/12_fix-tile.patch0000755000000000000000000000171711741321713013672 0ustar From: Rémi Guyomarch (via FreeBSD & OpenBSD) Subject: Fix -tile for images smaller than the screen. diff -urNad 12.xloadimage.tmp/merge.c 12.xloadimage/merge.c --- 12.xloadimage.tmp/merge.c 1993-10-21 22:28:39.000000000 +0100 +++ 12.xloadimage/merge.c 2003-04-05 15:04:06.000000000 +0100 @@ -244,6 +244,7 @@ int x, y; unsigned int width, height, verbose; { Image *base, *tmp; + int nx, ny; if (verbose) { printf(" Tiling..."); @@ -259,16 +260,14 @@ else base = newTrueImage(width, height); - while (x < base->width) { - while(y < base->height) { - tmp = merge(base, image, x, y, 0); + for (nx = x; nx < base->width; nx += image->width) { + for(ny = y; ny < base->height; ny += image->height) { + tmp = merge(base, image, nx, ny, 0); if (tmp != base) { freeImage(base); base = tmp; } - y += image->width; } - x += image->width; } printf("done.\n"); return(base); debian/patches/16_CAN-2005-0639.patch0000644000000000000000000000242511742064726013544 0ustar From: Debian security team Subject: Description: Fix integer overflows in new.c. Upstream status: Not submitted Date: 2005-03-18 --- new.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) --- a/new.c +++ b/new.c @@ -66,6 +66,18 @@ } +static unsigned int ovmul(unsigned int a, unsigned int b) +{ + unsigned int r; + + r = a * b; + if (r / a != b) { + memoryExhausted(); + } + + return r; +} + void goodImage(image, func) Image *image; char *func; @@ -131,7 +143,7 @@ image->height= height; image->depth= 1; linelen= (width / 8) + (width % 8 ? 1 : 0); /* thanx johnh@amcc.com */ - image->data= (unsigned char *)lcalloc(linelen * height); + image->data= (unsigned char *)lcalloc(ovmul(linelen, height)); return(image); } @@ -152,7 +164,7 @@ image->height= height; image->depth= depth; image->pixlen= pixlen; - image->data= (unsigned char *)lmalloc(width * height * pixlen); + image->data= (unsigned char *)lmalloc(ovmul(ovmul(width, height), pixlen)); return(image); } @@ -168,6 +180,7 @@ image->height= height; image->depth= 24; image->pixlen= 3; + image->data= (unsigned char *)lmalloc(ovmul(ovmul(width, height), 3)); image->data= (unsigned char *)lmalloc(width * height * 3); return(image); } debian/patches/28_correct-scaling-fullscreen.patch0000644000000000000000000000161512221757713017400 0ustar Description: -fullscreen option behaves incorrectly if one of the images' dimensions is bigger than screen, but the other is not. It's caused by a forgotten typecast from uint to int. Author: Anton Khirnov Forwarded: no Bug-Debisn: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506343 --- a/xloadimage.c +++ b/xloadimage.c @@ -379,8 +379,8 @@ int main(argc, argv) if ((newimage->width > DisplayWidth(disp, scrn)) || (newimage->height > DisplayHeight(disp, scrn))) { opt->info.zoom.x= opt->info.zoom.y= - (newimage->width - DisplayWidth(disp, scrn) > - newimage->height - DisplayHeight(disp, scrn) ? + ((int)newimage->width - DisplayWidth(disp, scrn) > + (int)newimage->height - DisplayHeight(disp, scrn) ? (float)DisplayWidth(disp, scrn) / (float)newimage->width * 100.0 : (float)DisplayHeight(disp, scrn) / (float)newimage->height * 100.0); } debian/patches/05_idelay-manpage.patch0000755000000000000000000000317611741321713015031 0ustar From: James Troup Subject: Update manpage for how -idelay/-delay actually work. diff -urNad 05.xloadimage.tmp/xloadimage.man 05.xloadimage/xloadimage.man --- 05.xloadimage.tmp/xloadimage.man 1993-10-21 22:29:05.000000000 +0100 +++ 05.xloadimage/xloadimage.man 2003-04-02 19:33:28.000000000 +0100 @@ -84,9 +84,6 @@ debugging. If an X error is seen while in this mode, a core will be dumped. .TP --delay \fIsecs\fR -Automatically advance to the next image after \fIsecs\fR seconds. -.TP -display \fIdisplay_name\fR X11 display name to send the image(s) to. .TP @@ -237,6 +234,11 @@ Specify the maximum number of colors to use in the image. This is a way to forcibly reduce the depth of an image. .TP +-delay \fIsecs\fR +Automatically advance to the next image after \fIsecs\fR seconds. You +may want to use the \fI-global\fR switch with this command to create a +slideshow with multiple images. +.TP -dither Dither a color image to monochrome using a Floyd-Steinberg dithering algorithm. This happens by default when viewing color images on a @@ -273,10 +275,8 @@ but will take longer to process and will be less accurate. .TP -idelay \fIsecs\fR -Set the delay to be used for this image to \fIsecs\fR seconds (see -\fI-delay\fR). If \fI-delay\fR was specified, this overrides it. If -it was not specified, this sets the automatic advance delay for this -image while others will wait for the user to advance them. +This option is no longer supported due to the addition of +\fI-global\fR. The same functionality can be had with \fI-delay\fR. .TP -invert Inverts a monochrome image. This is shorthand for \fI-foreground debian/patches/15_CAN-2005-0638.patch0000755000000000000000000000316011741321713013531 0ustar From: xli upstream via Gentoo Subject: Description: Fix shell metacharacters vulnerability with compressed images (#298926). Upstream status: Not submitted Date: 2005-03-10 diff -urNad --exclude=CVS --exclude=.svn ./zio.c /tmp/dpep-work.7hAKRd/xloadimage-4.1/zio.c --- ./zio.c 1993-10-28 17:10:02.000000000 +0000 +++ /tmp/dpep-work.7hAKRd/xloadimage-4.1/zio.c 2005-10-08 04:12:08.000000000 +0100 @@ -210,9 +210,30 @@ if ((strlen(name) > strlen(filter->extension)) && !strcmp(filter->extension, name + (strlen(name) - strlen(filter->extension)))) { - debug(("Filtering image through '%s'\n", filter->filter)); - zf->type= ZPIPE; - sprintf(buf, "%s %s", filter->filter, name); + char *fname, *t, *s; + + /* meta-char protection from xli. + * + * protect in single quotes, replacing single quotes + * with '"'"', so worst-case expansion is 5x + */ + + s = fname = (char *) lmalloc(1 + (5 * strlen(name)) + 1 + 1); + *s++ = '\''; + for (t = name; *t; ++t) { + if ('\'' == *t) { + /* 'foo'bar' -> 'foo'"'"'bar' */ + strcpy(s, "'\"'\"'"); + s += strlen(s); + } else { + *s++ = *t; + } + } + strcpy (s, "'"); + debug(("Filtering image through '%s'\n", filter->filter)); + zf->type= ZPIPE; + sprintf(buf, "%s %s", filter->filter, fname); + lfree (fname); if (! (zf->stream= popen(buf, "r"))) { lfree((byte *)zf->filename); zf->filename= NULL; debian/patches/21_libpng.patch0000644000000000000000000000115211744042470013415 0ustar From: Austin Donnelly Subject: Check libpng version and call right function --- a/png.c 2011-06-08 21:56:57.000000000 +0900 +++ b/png.c 2011-06-08 21:58:16.000000000 +0900 @@ -321,7 +321,11 @@ case PNG_COLOR_TYPE_GRAY_ALPHA: case PNG_COLOR_TYPE_GRAY: if (bit_depth < 8) +#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 + png_set_expand_gray_1_2_4_to_8(png_ptr); /* 1 pixlel 1 byte */ +#else png_set_gray_1_2_4_to_8(png_ptr); /* 1 pixlel 1 byte */ +#endif image = newRGBImage(width, height, 8); image->rgb.used = 256; for (i = 0; i < 256; i++) { debian/patches/17_security-sprintf.patch0000755000000000000000000001175611741321713015514 0ustar From: James Troup Subject: Description: Fix unsafe sprintf usage. (#332524) Upstream status: Not submitted URL: http://msgs.securepoint.com/cgi-bin/get/bugtraq0510/57.html Date: 2005-10-07 diff -urNad --exclude=CVS --exclude=.svn ./mcidas.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/mcidas.c --- ./mcidas.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/mcidas.c 2005-10-08 04:15:19.000000000 +0100 @@ -63,7 +63,7 @@ minute = (time % 10000) / 100; second = (time % 100); - sprintf(buf, "%d:%2.2d:%2.2d %s %d, %d (day %d)", + snprintf(buf, 29, "%d:%2.2d:%2.2d %s %d, %d (day %d)", hour, minute, second, month_info[month].name, day, year, (date % 1000)); return(buf); diff -urNad --exclude=CVS --exclude=.svn ./reduce.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/reduce.c --- ./reduce.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/reduce.c 2005-10-08 04:15:19.000000000 +0100 @@ -501,7 +501,7 @@ depth= colorsToDepth(n); new_image= newRGBImage(image->width, image->height, depth); - sprintf(buf, "%s (%d colors)", image->title, n); + snprintf(buf, BUFSIZ - 1, "%s (%d colors)", image->title, n); new_image->title= dupString(buf); /* calculate RGB table from each color area. this should really calculate diff -urNad --exclude=CVS --exclude=.svn ./rotate.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/rotate.c --- ./rotate.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/rotate.c 2005-10-08 04:15:19.000000000 +0100 @@ -70,7 +70,7 @@ { printf(" Rotating image by %d degrees...", degrees); fflush(stdout); } - sprintf(buf, "%s (rotated by %d degrees)", simage->title, degrees); + snprintf(buf, BUFSIZ - 1, "%s (rotated by %d degrees)", simage->title, degrees); image1 = simage; image2 = NULL; diff -urNad --exclude=CVS --exclude=.svn ./tiff.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/tiff.c --- ./tiff.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/tiff.c 2005-10-08 04:15:19.000000000 +0100 @@ -125,14 +125,14 @@ switch (info->photometric) { case PHOTOMETRIC_MINISBLACK: if (info->bitspersample > 1) { - sprintf(buf, "%d-bit greyscale ", info->bitspersample); + snprintf(buf, 31, "%d-bit greyscale ", info->bitspersample); return(buf); } else return "white-on-black "; case PHOTOMETRIC_MINISWHITE: if (info->bitspersample > 1) { - sprintf(buf, "%d-bit greyscale ", info->bitspersample); + snprintf(buf, 31, "%d-bit greyscale ", info->bitspersample); return(buf); } else diff -urNad --exclude=CVS --exclude=.svn ./window.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/window.c --- ./window.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/window.c 2005-10-08 04:15:19.000000000 +0100 @@ -602,7 +602,7 @@ else { char def_geom[30]; - sprintf(def_geom, "%ux%u+0+0", image->width, image->height); + snprintf(def_geom, 29, "%ux%u+0+0", image->width, image->height); XGeometry(disp, scrn, opt->info.geometry.string, def_geom, 0, 1, 1, 0, 0, (int *)&winx, (int *)&winy, (int *)&winwidth, (int *)&winheight); } diff -urNad --exclude=CVS --exclude=.svn ./zio.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/zio.c --- ./zio.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/zio.c 2005-10-08 04:15:28.000000000 +0100 @@ -232,7 +232,7 @@ strcpy (s, "'"); debug(("Filtering image through '%s'\n", filter->filter)); zf->type= ZPIPE; - sprintf(buf, "%s %s", filter->filter, fname); + snprintf(buf, BUFSIZ - 1, "%s %s", filter->filter, fname); lfree (fname); if (! (zf->stream= popen(buf, "r"))) { lfree((byte *)zf->filename); diff -urNad --exclude=CVS --exclude=.svn ./zoom.c /tmp/dpep-work.5qsW5w/xloadimage-4.1/zoom.c --- ./zoom.c 2005-10-08 04:15:18.000000000 +0100 +++ /tmp/dpep-work.5qsW5w/xloadimage-4.1/zoom.c 2005-10-08 04:15:19.000000000 +0100 @@ -63,23 +63,23 @@ if (!xzoom) { if (verbose) printf(" Zooming image Y axis by %d%%...", yzoom); - sprintf(buf, "%s (Y zoom %d%%)", oimage->title, yzoom); + snprintf(buf, BUFSIZ - 1, "%s (Y zoom %d%%)", oimage->title, yzoom); } else if (!yzoom) { if (verbose) printf(" Zooming image X axis by %d%%...", xzoom); - sprintf(buf, "%s (X zoom %d%%)", oimage->title, xzoom); + snprintf(buf, BUFSIZ - 1, "%s (X zoom %d%%)", oimage->title, xzoom); } else if (xzoom == yzoom) { if (verbose) printf(" Zooming image by %d%%...", xzoom); - sprintf(buf, "%s (%d%% zoom)", oimage->title, xzoom); + snprintf(buf, BUFSIZ - 1, "%s (%d%% zoom)", oimage->title, xzoom); } else { if (verbose) printf(" Zooming image X axis by %d%% and Y axis by %d%%...", xzoom, yzoom); - sprintf(buf, "%s (X zoom %d%% Y zoom %d%%)", oimage->title, + snprintf(buf, BUFSIZ - 1, "%s (X zoom %d%% Y zoom %d%%)", oimage->title, xzoom, yzoom); } if (verbose) debian/patches/23_jpeg.c-build-fix.patch0000644000000000000000000000122512011210130015146 0ustar From: Colin Watson Subject: Fix jpeg.c build if C_ARITH_CODING_SUPPORTED is defined. Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662619 Bug-Ubuntu: https://bugs.launchpad.net/bugs/935491 Index: b/jpeg.c =================================================================== --- a/jpeg.c +++ b/jpeg.c @@ -321,8 +321,8 @@ cinfo->arith_code = TRUE; #else fprintf(stderr, "jpegDump: sorry, arithmetic coding not supported\n"); - } #endif + } else if (!strncmp("grayscale", name, strlen(name)) || !strncmp("greyscale", name, strlen(name)) || !strncmp("monochrome", name, strlen(name))) { debian/patches/30_libtiff5.patch0000644000000000000000000000157512223055044013651 0ustar Author: Dominik George Description: Builds with both libtiff4-dev and libtiff5-dev Forwarded: no --- a/tiff.c +++ b/tiff.c @@ -11,6 +11,10 @@ #include +#ifndef TIFF_VERSION_CLASSIC /* libtiff4 or libtiff5? */ +#define TIFFHeaderCommon TIFFHeader +#endif + /* this structure contains all the information we care about WRT a TIFF * image. */ @@ -34,14 +38,14 @@ static TIFF *is_tiff(fullname, name, inf struct tiff_info *info; { ZFILE *zf; - TIFFHeader th; + TIFFHeaderCommon th; TIFF *tiff; zf = zopen(fullname); /* read TIFF header and see if it looks right */ - if ((zread(zf, (byte *)&th, sizeof(TIFFHeader)) == sizeof(TIFFHeader)) && + if ((zread(zf, (byte *)&th, sizeof(TIFFHeaderCommon)) == sizeof(TIFFHeaderCommon)) && ((th.tiff_magic == TIFF_BIGENDIAN) || (th.tiff_magic == TIFF_LITTLEENDIAN))) { debian/patches/18_manpage_fixes.patch0000644000000000000000000000767011742064733014775 0ustar From: James Troup Subject: Various typo fixes and correction of .TH section. Thanks to A Costa and Nicolas François. Closes: #320556, #320558, #326519 --- uufilter.man | 4 ++-- xloadimage.man | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) --- a/uufilter.man +++ b/uufilter.man @@ -1,4 +1,4 @@ -.TH UUFILTER 1 "21 October 1993" +.TH UUFILTER 1x "21 October 1993" .SH NAME uufilter - decode uuencoded files to stdout .SH SYNOPSIS @@ -12,7 +12,7 @@ \fIUufilter\fR automatically ignores lines that do not appear to be part of the uuencoded file. This is particularly useful in uudecoding files that have been concatenated from several email or news postings -without stripping off the headers or otherwise editting extraneous +without stripping off the headers or otherwise editing extraneous content. .SH OPTIONS .TP 8 --- a/xloadimage.man +++ b/xloadimage.man @@ -1,4 +1,4 @@ -.TH XLOADIMAGE 1 "8 May 1991" +.TH XLOADIMAGE 1x "8 May 1991" .SH NAME xloadimage, xsetbg, xview \- load images into an X11 window or onto the root window @@ -171,7 +171,7 @@ -type \fItype_name\fR Forces \fIxloadimage\fR to try to load the image as a particular file type rather than trying to guess. This often improves load -performance noticably. +performance noticeably. .TP -verbose Causes \fIxloadimage\fR to be talkative, telling you what kind of @@ -195,13 +195,13 @@ .TP -windowid \fIhex_window_id\fR Sets the background pixmap of a particular window ID. The argument -must be in hexadecimal and must be preceeded by "0x" (\fIeg\fR +must be in hexadecimal and must be preceded by "0x" (\fIeg\fR -windowid 0x40000b. This is intended for setting the background pixmap of some servers which use untagged virtual roots (\fIeg\fR HP-VUE), but can have other interesting applications. .SH IMAGE OPTIONS -The following options may preceed each image. These options are -local to the image they preceed. +The following options may precede each image. These options are +local to the image they precede. .TP -at \fIX\fR,\fIY\fR Indicates coordinates to load the image at on the base image. If @@ -285,7 +285,7 @@ -merge Merge this image onto the base image after local processing. The base image is considered to be the first image specified or the last image -that was not preceeded by \fI-merge\fR. If used in conjunction with +that was not preceded by \fI-merge\fR. If used in conjunction with \fI-at\fR and \fI-clip\fR, very complex images can be built up. This option is on by default for all images if the \fI-onroot\fR or \fI-windowid\fR options are specified. @@ -408,7 +408,7 @@ When zooming color images up you can reduce blockiness with \fI-smooth\fR. For zooms of 300% or more, I recommend two smoothing passes (although this can take awhile to do on slow machines). There -will be a noticable improvement in the image. +will be a noticeable improvement in the image. .PP You can perform image processing on a small portion of an image by loading the image more than once and using the \fI-merge\fR, \fI-at\fR @@ -547,7 +547,7 @@ filter = "uufilter -s" .uu .uue .fi The filter will be automatically invoked on any file with a .uu or -.uue extension. +\&.uue extension. .PP For a list of filters automatically recognized by xloadimage use the \fI-configuration\fR option. @@ -640,9 +640,9 @@ .SH COPYRIGHT Copyright (c) 1989, 1993 Jim Frost and others. .PP -\fIXloadimage\fR is copywritten material with a very loose copyright +\fIXloadimage\fR is copyrighted material with a very loose copyright allowing unlimited modification and distribution if the copyright -notices are left intact. Various portions are copywritten by various +notices are left intact. Various portions are copyrighted by various people, but all use a modification of the MIT copyright notice. Please check the source for complete copyright information. The intent is to keep the source free, not to stifle its distribution, so debian/patches/19_fix_root_c_resource_leak.patch0000755000000000000000000001167011741321713017215 0ustar From: Tim Connors Subject: Fix leaking xresources when using onroot option. See #325689. Patch by Alex Perry, reformatted by Tim Connors diff -urNad xloadimage-4.1~/root.c xloadimage-4.1/root.c --- xloadimage-4.1~/root.c 2008-11-22 19:52:01.000000000 +0100 +++ xloadimage-4.1/root.c 2008-11-22 19:52:02.000000000 +0100 @@ -16,24 +16,6 @@ #define RETAIN_PROP_NAME "_XSETROOT_ID" -void updateProperty(dpy, w, name, type, format, data, nelem) - Display *dpy; - Window w; - char *name; - Atom type; - int format; - int data; - int nelem; -{ - /* intern the property name */ - Atom atom = XInternAtom(dpy, name, 0); - - /* create or replace the property */ - XChangeProperty(dpy, w, atom, type, format, PropModeReplace, - (unsigned char *)&data, nelem); -} - - /* Sets the close-down mode of the client to 'RetainPermanent' * so all client resources will be preserved after the client * exits. Puts a property on the default root window containing @@ -47,9 +29,15 @@ { /* create dummy resource */ Pixmap pm= XCreatePixmap(dpy, w, 1, 1, 1); + unsigned char *data = (unsigned char *) ± - /* create/replace the property */ - updateProperty(dpy, w, RETAIN_PROP_NAME, XA_PIXMAP, 32, (int)pm, 1); + /* intern the property name */ + char *name = RETAIN_PROP_NAME; + Atom atom = XInternAtom(dpy, name, 0); + + /* create or replace the property */ + XChangeProperty(dpy, w, atom, XA_PIXMAP, 32, PropModeReplace, + data, sizeof(Pixmap)/4); /* retain all client resources until explicitly killed */ XSetCloseDownMode(dpy, RetainPermanent); @@ -61,36 +49,64 @@ */ static void -freePrevious(dpy, w) +freePrevious(dpy, w, verbose) Display *dpy; Window w; + unsigned int verbose; { - Pixmap *pm; - Atom actual_type; /* NOTUSED */ + Pixmap *pm; + unsigned char *charpm; + Atom actual_type; int format; - int nitems; - int bytes_after; + unsigned long nitems; + unsigned long bytes_after; + int returncode; /* intern the property name */ Atom atom = XInternAtom(dpy, RETAIN_PROP_NAME, 0); /* look for existing resource allocation */ - if ((XGetWindowProperty(dpy, w, atom, 0, 1, 1/*delete*/, - AnyPropertyType, &actual_type, &format, (unsigned long *)&nitems, - (unsigned long *)&bytes_after, (unsigned char **)&pm) == Success) && - nitems == 1) { - if ((actual_type == XA_PIXMAP) && (format == 32) && - (nitems == 1) && (bytes_after == 0)) { - /* blast it away */ - XKillClient(dpy, (XID) *pm); - XFree((char *)pm); - } - else if (actual_type != None) { - fprintf(stderr, - "%s: warning: invalid format encountered for property %s\n", - RETAIN_PROP_NAME, "xloadimage"); - } + nitems = sizeof(Pixmap)/4; + returncode = XGetWindowProperty(dpy, w, atom, + 0, nitems, 1/*delete*/, + XA_PIXMAP, &actual_type, + &format, &nitems, + &bytes_after, &charpm); + if (returncode != Success) { + if (verbose) + fprintf(stderr, "failed to look for %s with return code %i.\n", + RETAIN_PROP_NAME, returncode); + return; + } + + /* Check if the property was found */ + if (actual_type == None) { + if (verbose) + fprintf(stderr, "didn't find evidence of prior run.\n"); + return; + } + + /* Make sure the dummy value is still present */ + if (actual_type != XA_PIXMAP) { + if (verbose) + fprintf(stderr, "found wrong data type - skipped.\n"); + return; + } + + /* Check size, in case we're a different architecture */ + if ((nitems != sizeof(Pixmap)/4) || + (format != 32) || + (bytes_after != 0)) { + if (verbose) + fprintf(stderr, "saw wrong %li / word size %i / architecture %li.\n", + bytes_after, format, nitems); + return; } + + /* blast it away */ + pm = (Pixmap*) charpm; + XKillClient(dpy, (XID) *pm); + XFree(charpm); } #if FIND_DEC_ROOTWINDOW @@ -185,20 +201,21 @@ for(i = 0; i < numChildren; i++) { Atom actual_type; int actual_format; - long nitems, bytesafter; - Window *newRoot = NULL; - - if (XGetWindowProperty (disp, children[i], __SWM_VROOT,0,1, - False, XA_WINDOW, &actual_type, &actual_format, - (unsigned long *)&nitems, (unsigned long *)&bytesafter, - (unsigned char **) &newRoot) == - Success && newRoot) { - root = *newRoot; + unsigned long nitems, bytesafter; + unsigned char *newRoot = 0; + + if ((XGetWindowProperty (disp, children[i], __SWM_VROOT,0,1, + False, XA_WINDOW, + &actual_type, &actual_format, + &nitems, &bytesafter, &newRoot) + == Success) && + newRoot) { + root = *((Window*) newRoot); break; } } } - freePrevious(disp, root); + freePrevious(disp, root, verbose); if (! (ximageinfo= imageToXImage(disp, scrn, DefaultVisual(disp, scrn), debian/patches/25_hardening-flags.patch0000644000000000000000000000070012221757255015202 0ustar Description: Add CPPFLAGS to CFLAGS to respect all hardening flags by dpkg-buildflags Author: Dominik George Forwarded: no --- a/Makefile.in +++ b/Makefile.in @@ -8,6 +8,7 @@ CFLAGS = @CFLAGS@ XLIB = @X_LIBS@ -lX11 @X_EXTRA_LIBS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ +CFLAGS += @CPPFLAGS@ SRCS = bright.c clip.c cmuwmraster.c compress.c config.c \ dither.c faces.c fbm.c fill.c gif.c halftone.c imagetypes.c img.c jpeg.c \ debian/patches/10_config.c-HOME-fix.patch0000755000000000000000000000266111741321713015146 0ustar From: Austin Donnelly Subject: Gracefully handle lack of HOME env. variable. diff -urNad 10.xloadimage.tmp/config.c 10.xloadimage/config.c --- 10.xloadimage.tmp/config.c 2003-04-02 23:48:30.000000000 +0100 +++ 10.xloadimage/config.c 2003-04-02 23:46:22.000000000 +0100 @@ -15,11 +15,13 @@ #include #ifndef VMS #include +#include #endif #include #ifdef HAVE_UNISTD_H #include #endif +#include /* SUPPRESS 530 */ /* SUPPRESS 560 */ @@ -434,14 +436,29 @@ printf("No filters\n"); } +/* Work out where this user's home directory is, or default to '/' */ +/* XXX needs a VMS guru to supply something plausable for VMS */ +static char *homedir() +{ char *p; + struct passwd *pw; + + p = getenv("HOME"); + if (p) return p; + + /* try for a password file lookup instead */ + pw = getpwuid(getuid()); + if (!pw) + return "/"; /* XXX maybe print message? */ + else + return pw->pw_dir; +} + char *expandPath(p) char *p; { char buf1[BUFSIZ], buf2[BUFSIZ]; int b1, b2, var; char *ptr; - char *getenv(); - buf1[0] = '\0'; buf2[0] = '\0'; b1 = 0; @@ -455,7 +472,7 @@ #endif else if(*p == '~') { buf1[b1] = '\0'; - strncat(buf1, getenv("HOME"), BUFSIZ - strlen(buf1) - 1); + strncat(buf1, homedir(), BUFSIZ - strlen(buf1) - 1); buf1[BUFSIZ - 1] = '\0'; b1 = strlen(buf1); var = 0; debian/patches/04_previous-image.patch0000644000000000000000000000105111741321713015072 0ustar From: Juan Cespedes Subject: Fix 'p' (previous image) key. diff -urNad 04.xloadimage.tmp/xloadimage.c 04.xloadimage/xloadimage.c --- 04.xloadimage.tmp/xloadimage.c 2003-04-02 19:28:25.000000000 +0100 +++ 04.xloadimage/xloadimage.c 2003-04-02 19:27:44.000000000 +0100 @@ -493,6 +493,8 @@ if (!tmpset) goto redisplay_in_window; /* ick */ optset= tmpset; + freeImage(dispimage); + dispimage= NULL; goto get_another_image; /* ick */ case '<': if ((opt = getOption(optset,ZOOM)) == NULL) { debian/postinst0000755000000000000000000000013111742051213010766 0ustar #!/bin/sh set -e if [ -x /usr/sbin/update-mime ]; then update-mime fi #DEBHELPER# debian/watch0000644000000000000000000000010011744262041010207 0ustar version=3 http://ftp.x.org/R5contrib/xloadimage.([\d.]+).tar.gz debian/docs0000644000000000000000000000000711744041347010043 0ustar README debian/copyright0000644000000000000000000000542712221757757011150 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0 Upstream-Name: xloadimage Upstream-Contact: Jim Frost (email may be obsolete) Source: http://ftp.x.org/R5contrib/xloadimage.4.1.tar.gz X-Upstream-Comment: Dead project, upstream no longer there. Files: * Copyright: 1989-1993 Jim Frost License: BSD-like Files: debian/rules Copyright: 2013 Dominik George 1999-2005 James Troup 1994,1995 Ian Jackson License: GPL-2+ Files: debian/* Copyright: 2013 Dominik George 2012 Jari Aalto 2012 Moritz Muehlenhoff 2011 Gregor Herrmann 2011 Martin F. Krafft 2008 Thomas Viehmann 2005 Joey Hess 1999-2005 James Troup 1997 Joey Hess 1995, 1996, 1998 Austin Donnelly License: GPL-2+ License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License can be found in "/usr/share/common-licenses/GPL-2". License: BSD-like From copyright.h: . /* * Copyright 1989, 1993 Jim Frost * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. The author makes no representations * about the suitability of this software for any purpose. It is * provided "as is" without express or implied warranty. * * THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE * USE OR PERFORMANCE OF THIS SOFTWARE. */ debian/changelog0000644000000000000000000003724412231215746011055 0ustar xloadimage (4.1-22) unstable; urgency=low * Change maintainer to myself. (Closes: #527575) * Re-license d/r under GPL-2+ as per the custom license given by the original author. * Fix build log checks. - make build system respect all hardening flags. - fix implicit declaration * Do not resize images smaller than the screen with -shrink (David Frey). (Closes: #381382) * Fix -fullscreen behaviour for special gemoetry cases (Anton Khirnov). (Closes: #506343) * Replace hyphens by correct minus signs for options and others in *.man. * Builds with both libtiff4-dev and libtiff5-dev. -- Dominik George Wed, 02 Oct 2013 19:37:32 +0200 xloadimage (4.1-21) unstable; urgency=low * QA upload. * Build-depend on libtiff-dev rather than libtiff4-dev. -- Colin Watson Tue, 04 Sep 2012 10:25:08 +0100 xloadimage (4.1-20) unstable; urgency=low * QA upload. * Fix jpeg.c build if C_ARITH_CODING_SUPPORTED is defined. (Closes: #662619) -- Colin Watson Fri, 10 Aug 2012 14:45:30 +0100 xloadimage (4.1-19) unstable; urgency=low * QA upload. * Adjust hardening flags to include LDFLAGS for uufilter. Thanks to Simon Ruderich . (Closes: #670819) -- Jari Aalto Sun, 29 Apr 2012 18:40:30 +0300 xloadimage (4.1-18) unstable; urgency=low * QA upload. * Remove deprecated dpatch and upgrade to packaging format "3.0 quilt". (Closes: #664370) * Update to Standards-Version to 3.9.3, debhelper 9, Copyright Format 1.0. * Migrate to dh(1) with new files: debian/{docs,dirs} etc. * Enable all hardened build flags. * Add watch file and add generate upstream changelog. * debian/patches - (16, 18): Run "quilt refresh" to make them apply cleanly. - (22): New; fix missing header files. - (20, 21): Rename to libpng and correct patch Subject text. -- Jari Aalto Fri, 20 Apr 2012 16:33:51 +0300 xloadimage (4.1-17) unstable; urgency=low * QA upload * Set maintainer to Debian QA Group * Switch to source format 3 * Add patch by Nobuhiro Iwamatsu to fix compatibility with libpng 1.5. (Closes: #635706) * Build-depend on libpng-dev. (Closes: #662562) -- Moritz Muehlenhoff Tue, 13 Mar 2012 23:07:33 +0100 xloadimage (4.1-16.3) unstable; urgency=low * Non-maintainer upload. * Change Build-Depends from libjpeg62-dev to libjpeg-dev. (Closes: #634647) -- gregor herrmann Sun, 06 Nov 2011 17:45:02 +0100 xloadimage (4.1-16.2) unstable; urgency=low * Non-maintainer upload. * Lower MIME priority for images to 1 (second to lowest), because xloadimage can be used to view images, but it's surely not the most preferred choice. (Closes: #470663) -- martin f. krafft Fri, 25 Mar 2011 08:45:49 +0100 xloadimage (4.1-16.1) unstable; urgency=high * Non-maintainer upload. * 19_fix_root.c_resouce-leak.dpatch: Fix leaking xresources when using --onroot. (Closes: #325689) Patch by Alex Perry, reformatted by Tim Connors, thanks! Not verbose should be not verbose, though. -- Thomas Viehmann Sat, 22 Nov 2008 19:48:10 +0100 xloadimage (4.1-16) unstable; urgency=low * debian/control (Build-Depends): s/xlibs-dev/libx11-dev, libxau-dev, libxdmcp-dev/. * debian/rules (Build-Depends): Add libxt-dev which is needed to satisfy AC_PATH_XTRA in configure but not to build or link. * debian/rules (binary-arch): call strip ourselves since coreutils decided not to bother stripping comment sections. * debian/rules (STRIP): define. * debian/rules (install_binary): drop -s. * debian/rules (Build-Depends): add file. * debian/control (Standards-Version): updated to 3.6.2.1. * debian/changelog: switch from ISO-8859-1 to UTF-8. * 18_manpage_fixes.dpatch: new patch to fix typos and correct .TH section. Thanks to A Costa and Nicolas François. (Closes: #320556, #320558, #326519) * 02_png-support: update to add .png to xloadimagerc which will add .png files to zsh's autocompletion. Thanks to Clint Adams. (Closes: #330200) -- James Troup Tue, 6 Dec 2005 03:55:23 +0000 xloadimage (4.1-15) unstable; urgency=HIGH * 17_security-sprintf.dpatch: new patch to fix unsafe sprintf usage. Reported by Ariel Berkman . (Closes: #332524) * Merge NMU changes from Joey Hess and dpatch-ify. -- James Troup Sat, 8 Oct 2005 04:22:14 +0100 xloadimage (4.1-14.2) unstable; urgency=HIGH * Non-maintainer upload. * Apply patch from Debian security team to fix integer overflows in new.c. (CAN-2005-0639) -- Joey Hess Fri, 18 Mar 2005 15:19:53 -0500 xloadimage (4.1-14.1) unstable; urgency=HIGH * Non-maintainer upload. * Apply patch from bug #298926 to fix shell metacharacters vulnerability that could be used to execute arbitrary commands by using shell metachaacters in filenames for compressed images. (CAN-2005-0638) (Closes: #298926) -- Joey Hess Wed, 16 Mar 2005 18:24:55 -0500 xloadimage (4.1-14) unstable; urgency=low * debian/control (Build-Depends): s/libtiff3g-dev/libtiff4-dev/. -- James Troup Thu, 29 Jul 2004 01:42:14 +0100 xloadimage (4.1-13) unstable; urgency=low * 14_errno-not-extern: new patch to remove 'extern int errno' which was causing xloadimage to fail on startup with recent glibc (>= 2.3.2-ds1-8). Thanks to Joshua Kwan for the report. * debian/control (Standards-Version): bump to 3.6.1.0. * debian/control (Build-Depends): s/libpng12-0-dev/libpng12-dev/. -- James Troup Fri, 31 Oct 2003 01:50:05 +0000 xloadimage (4.1-12) unstable; urgency=low * 13_varargs-is-obsolete: new patch to remove #inclusion of from rlelib.c because a) is obsolete and deprecated by gcc-3.3 and b) unused by rlelib.c anyway. Thanks to Daniel Schepler for the report. (Closes: #196323) * debian/control (Standards-Version): bump to 3.5.10.0. -- James Troup Fri, 6 Jun 2003 03:40:43 +0100 xloadimage (4.1-11) unstable; urgency=low * Move to dpatch; existing non-debian/ changes split into 01_libjpeg-support, 02_png-support, 03_security-strfoo, 04_previous-image, 05_idelay-manpage, 06_-Wall-cleanup, 07_SYSPATHFILE, 08_manpage-config-path, 09_xloadimagerc-path and 10_config.c-HOME-fix. * debian/rules: include /usr/share/dpatch/dpatch.make. * debian/rules (build): depend on patch-stamp. * debian/rules (clean): depend on unpatch. Remove debian/patched. * debian/control (Build-Depends): add dpatch. * debian/rules: update copyright and use install_foo convenience variables. * debian/rules (clean): don't use the Makefile since with dpatch it will be the original Makefile and not the patched one. Instead clean things out ourselves. * debian/control (Build-Depends): use real package names rather than ambiguous virtual ones. * debian/control (Standards-Version): bump to 3.5.9.0. * debian/postinst: no longer do /usr/doc symlinks. * debian/prerm: remove; no longer do /usr/doc symlinks. * debian/rules (binary-arch): don't install obsolete prerm. * 11_fork-implies-quiet.dpatch: new patch to make -fork imply -quiet as documented in the manpage. Thanks to Jens Peter Secher . (Closes: #162195) * 12_fix-tile.dpatch: new patch to fix -tile for images smaller than the screen. Thanks to Rémi Guyomarch (via FreeBSD & OpenBSD). -- James Troup Sat, 5 Apr 2003 15:06:13 +0100 xloadimage (4.1-10) unstable; urgency=low * debian/rules: install debian/conffiles. (Closes: #132214) * debian/changelog: remove the explicit setting of the add-log-mailing-address emacs variable. * debian/control (Standards-Version): bump to 3.5.6.0. -- James Troup Sun, 3 Feb 2002 21:17:03 +0000 xloadimage (4.1-9) unstable; urgency=medium * config.c, faces.c, imagetypes.c, options.c, packtar.c: fix unsafe str{cpy,cat} usage. Seen in http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=46186 -- James Troup Fri, 6 Jul 2001 19:38:59 +0100 xloadimage (4.1-8) unstable; urgency=medium * debian/mime: fix path to executable, noticed by Juan Cespedes . (Closes: #103103) -- James Troup Mon, 2 Jul 2001 14:59:00 +0100 xloadimage (4.1-7) unstable; urgency=low * xloadimage.c (main): patch to fix 'p' (previous image) key from Juan Cespedes . (Closes: #100302) * A further PNG patch from YOSHIDA Hiroshi. (Closes: #54633) * Makefile.in (DEFS): add -DSYSPATHFILE=\"/etc/X11/Xloadimage\" as suggested by Brad . (Closes: #54730) * debian/mime: mime types; thanks to Bill Allombert . * debian/post{inst,rm}: call update-mime if possible. * debian/rules: install the mimetypes. (Closes: #32697, #62076) * debian/control (Standards-Version): bump to 3.5.5.0. * Make the code -Wall clean. -- James Troup Mon, 25 Jun 2001 06:55:57 +0100 xloadimage (4.1-6) unstable; urgency=low * debian/control (Build-Depends): added. * debian/copyright: remove references to Linux. * debian/postinst: create /usr/doc/xloadimage symlink. * debian/prerm: remove /usr/doc/xloadimage symlink. * debian/rules (binary-arch): install documentation into /usr/share/{doc,man}. Install binaries into /usr/bin/. * debian/control (Standards-Version): update to 3.2.1. * The following entries are a patch from Yoshida Hiroshi (again); many thanks to him. - xloadimage.c: include if we have it. - window.c: likewise and fix #include mess so that ENABLE_TIMEOUT is defined again and -delay works. - vicar.c: we don't need . - vff.c (readImage): use our lmalloc() in favour of malloc(). (readHeader): likewise. - send.c (imageToXImage): compress() is renamed to compress_cmap(). - png.c: new file; support for viewing PNG images. - options.c (processOptions): don't allow negative arguments. - niff.c: conditionalize inclusion. - new.c: likewise for . - jpeg.c (init_source, fill_input_buffer, skip_input_data, resync_to_restart, term_source, read_row): define as static. - imagetypes.h: add png function definitions and add png to the ImageTypes struct. - image.h: remove some old portability code made obsolete by autoconfication. Change __STDC__ to STDC_HEADERS and make better use of HAVE_STRINGS_H. Change compress to compress_cmap. - configure.in: add a check for libpng and remove function check for mkdir. - config.c: Change IS_BSD to HAVE_UNISTD_H. - compress.c (compress_cmap): renamed; previously compress(). - bright.c (gammacorrect): don't recalculate the gamma value unless necessary. Fix true colour gamma correction. - Makefile.in (clean): fixes for autoconfication. (SRCS): add png.c: (XLIB): remove obsolete X_PRE_LIBS. * xloadimage.man: correct documentation for -idelay and -delay; -delay is per-image and not global and supersedes -idelay. * debian/control (Extended Description): reorder list of supported image types and add PNG. -- James Troup Sun, 31 Dec 2000 19:36:49 +0000 xloadimage (4.1-5) unstable; urgency=low * debian/control (Maintainer): correct typo in email address. * The following entries are a patch from Yoshida Hiroshi ; many thanks to him for it. - xloadimage.c: comment out unused declaration of atof(). (main): only trap SIGBUS if it's #define'd. - xbitmap.c (xbitmapLoad): initialize v10p. - window.c: #include , not . (imageInWindow): increase the area the image has to fill before it's clipped. Proceed to next image on right mouse button click. - vff.c: need . - main.c: need , main() returns int. (main): correct arguments to fprintf() when 'begin' line not found. - tiff.c (babble): correct arguments to printf() when printing title. (tiffIdent): pass tiff_info struct to babble() correctly. Don't call babble again after we've closed the TIFF file. - sunraster.c (sunRasterLoad): correct arguments to fprintf() on an unsuported image. - rlelib.c (rle_get_error): correct number of arguments to function itself. (make_magic): initalize bz and by. - pbm.c: #include "options.h". (pbmLoad): initialize src and image. - niff.c: #include . (babble): don't suppply spurious third (depth) argument to printf(). (niffLoad): initialize image and data_size. (niffDump): initialize data_size. - misc.c (signalName): don't assume SIGBUS is defined. - jpeg.c: rewritten for libjpeg v6. - img.c (load_img): initialize image. (load_ximg): initialize image, remove unused variable i. - imagetypes.h: s/HAS_\(TIFF|JPEG\)/HAVE_LIB\1/g. - imagetypes.c: prototype findImage(). - image.h: use config.h if we have it. - fbm.c: fbmin_img_aspect is double, not int. (fbmin_image_test): returns int. Correct arguments to fprintf() concerning fbmin_img_aspect. - Makefile.in, config.h.in, configure, configure.in, configure.scan: new files. * debian/rules (build): use the new configure script. * debian/rules (clean): clean up more for Aegis. -- James Troup Tue, 23 Nov 1999 07:44:31 +0000 xloadimage (4.1-4) unstable; urgency=low * New maintainer. * Recompile with libjpeg62. (Closes: #40414, #43503, #44851, #45665) * debian/rules: rewrite so I can work with it. * Makefile: prefix SYSPATHFILE with $(DESTDIR). Noticed by Paul Slootman (Closes: #26912) * debian/control (Maintainer): update. * debian/control (Standards-Version): update (FSVO) to 2.5.0.0. * debian/copyright: update. * debian/config: remove cruft. -- James Troup Thu, 21 Oct 1999 01:34:23 +0100 xloadimage (4.1-3) frozen unstable; urgency=medium * Make.conf: use -DIS_BSD, not -DBSD. This allows the -delay option to work correctly, and fixes. (Closes: #20486) * config.c: Fix to stop segfault if HOME is not set in the environment. Allows xloadimage to be used in /etc/X11/xdm/Xsetup. (Closes #4941) * debian/conffiles: use absolute path. (Closes #18493, #18502) * tiff.c & Make.conf: don't use supplied libtiff, but dynamically link against system's libtiff.so. Makes xloadimage binary 168Kb smaller. Unfortunately, libjpeg API has changed since xloadimage was written, so using dynamic libjpeg would be much more work. -- Austin Donnelly Sun, 5 Apr 1998 22:17:58 +0100 xloadimage (4.1-2.2) unstable; urgency=low * Non-maintainer upload. * Fix symlinks for xview and setbg. (Closes: #13286) -- Joey Hess Thu, 25 Sep 1997 23:11:57 -0400 xloadimage (4.1-2.1) unstable; urgency=low * Non-maintainer upload. * Bump to standards version to 2.1.0.0. (Closes: #9525) * Build-depend on libc6. (Closes: #11750). * Use pristine source tarball. -- Joey Hess Mon, 15 Sep 1997 15:24:17 -0400 xloadimage (4.1-2) unstable; urgency=low * Add architecture field in debian.rules. * Add dependencies on X11 libraries and libc5. -- Austin Donnelly Tue, 16 Apr 1996 15:27:59 +0100 xloadimage (4.1-1) unstable; urgency=low * Add Debian control files. * Use a hard-wired configuration. -- Austin Donnelly Sat, 2 Dec 1995 17:10:22 +0100 debian/upstream.changelog0000644000000000000000000001211012223054614012671 0ustar Version 2, patchlevel 00 contained support for MacPaint, FBM, PGM, PPM, CMU, Utah RLE and XWD image formats, gamma equalization, image smoothing, and image rotation. G3 FAX support was modified to cut down on false positive identifications. The zio subsystem was modified to cache reads for performance improvements and to allow stdin to be used as an input source. Several loader functions which did not properly close their files were fixed. Color slideshows now work. Icon titles use an abbreviated titlebar title to enhance readability. The resource class name was changed from XLoadImage to xloadimage to be more predictable. Several options now propagate to all images following them if the -slideshow option is specified. Version 2.01 contained several fixes to window.c to work around a bug in twm/tvtwm which could crash servers. The resource class name was changed (again) to Xloadimage to conform with standard class naming practices. Several problems with System-V compilation were corrected. The gcc-1-37 make target was fixed to prevent a double-define. The GIF loader was patched to respond better to short GIF files. The Utah RLE image loader was patched to work with the updated ZIO package. Version 2.02 added the options -default, -gray, -normalize, and -private. The memToVal routines were macro-ized for substantial speed increases. The atom used for deleting previously allocated colors for the -onroot option was changed to correspond to that used by xsetroot. Dithering and halftoning were changed to use a lookup table for intensities to speed them up somewhat. Rle.h was changed to use memToValLSB() instead of its own byte-swapping algorithm for portability. Window.c was modified to eliminate the initial paint, moving it instead to within ConfigureNotify. A fix was made to xwd.c to fix its colormap loader for out-of-order colormaps. The G3 FAX identification function was fixed and the G3 loader moved to prior to the MacPaint loader so that both can be used. A bug in send.c where color images using the default colormap would not appear correctly if the display depth was not a multiple of 8 was corrected. The default gamma value used in rle.c was changed from 2 to 1. There were miscellaneous portability changes. Version 2.03 added -delay. Many minor programming errors were cleaned up. Hash.c was changed to use image.h instead of local typedefs (fixing a problem with PPM image loading). Window.c was changed to fix a problem with override redirect windows in fullscreen mode, and refresh problems with some servers in slideshow mode were fixed. Path.c was modified to ignore directories when searching for files. Send.c was modified to allow TrueColor and DirectColor visuals. Version 2.03-JPL contained interim code to handle 24-bit TrueColor and DirectColor displays pending the release of Version 3.0. Version 3.0 added full support for all server types. Internal support for 24-bit images was implemented (including the improvement of Sun Rasterfile and PPM support to use the 24-bit format internally). Many modifications to image processing routines to support or make use of 24-bit images. A much-improved colormap reduction algorithm replaced the primitive one in previous versions. The window display code was modified to work with the best possible visual. The window display code was modified to use backing store when available (and -pixmap was added to force the old technique). The -fit option was added to force an image to be fit into the default colormap if it didn't fit as supplied. The -fork option was added to allow automatic backgrounding. The -onroot -fullscreen options were modified to preserve aspect ratio. The -windowid option was added to allow the setting of the background pixmap of any window. The -onroot code was modified to work with DECWINDOWS servers. The -normalize option was improved for color images. The -slideshow option was removed (and made the default behavior) and -merge was added to allow more flexible image merging. The WM_DELETE protocol is now recognized. PC Paintbrush (PCX) and GEM bitmap image formats are now supported. The GIF 89a signature is now recognized (although no support for its additional capabilities has been implemented). Version 3.01 corrected color problems when merging RGB files and fixed a few small problems. Version 3.02 fixed a -zoom bug for 24-bit images, a bug in the imageOnRoot() function for DEC and NCD servers, and a couple of bugs in merging and smoothing. Version 3.03 added JPEG and color PCX image support and small fixes to smooth() and normalize(). Version 4.0 added color PCX support, VICAR image support, NIFF image support, -dump, -unhalftone, JPEG V4 and TIFF V3 integration, generic filtering, and fixed a lot of bugs and minor build problems on some systems. Options are now handled in the order they are given rather than a fixed order. G3 FAX loader was removed because it was totally unreliable. Version 4.1 fixed a number of ANSI-C compilation problems, enhanced the automated configuration to target HP and SGI machines automatically, corrected a few minor bugs, and included the IJG JPEG V4A code.