home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume34
/
imagemagick
/
patch01a
< prev
next >
Wrap
Text File
|
1992-12-27
|
77KB
|
2,385 lines
Newsgroups: comp.sources.misc
From: cristy@eplrx7.es.duPont.com (John Cristy)
Subject: v34i085: imagemagick - X11 image processing and display v2.2, Patch01a/3
Message-ID: <1992Dec27.225823.369@sparky.imd.sterling.com>
X-Md4-Signature: bf733655c1252697e4d08c00f8c1f042
Date: Sun, 27 Dec 1992 22:58:23 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: cristy@eplrx7.es.duPont.com (John Cristy)
Posting-number: Volume 34, Issue 85
Archive-name: imagemagick/patch01a
Environment: UNIX, VMS, X11, SGI, DEC, Cray, Sun, Vax
Patch-To: imagemagick: Volume 34, Issue 28-54
ImageMagick 2.2 Patch #1
To apply this patch:
cd to the top of the source tree (to the directory containing the
"ImageMagick" subdirectories) and do:
patch -p < ThisFile
cd ImageMagick
mv rotate.c shear.c
Prereq: ImageMagick 2.2 (posted from comp.sources.misc, Volume 34,
Issue 28).
Alternatively get the entire distribution as contrib/ImageMagick.tar.Z
on export.lcs.mit.edu.
-----------
#!/bin/sh
# This is ImageMagick/patch01, a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 12/21/1992 19:38 UTC by cristy@dupont.com
# Source directory /tmp_mnt/nfs/zeta/home/cristy/Archive/ImageMagick
#
# existing files will NOT be overwritten unless -c is specified
#
# This is part 1 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 192393 -rw------- fix-01
#
if test -r _shar_seq_.tmp; then
echo 'Must unpack archives in sequence!'
echo Please unpack part `cat _shar_seq_.tmp` next
exit 1
fi
# ============= fix-01 ==============
if test -f 'fix-01' -a X"$1" != X"-c"; then
echo 'x - skipping fix-01 (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting fix-01 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'fix-01' &&
diff -r -c ImageMagick/ChangeLog ImageMagick2.2.1/ChangeLog
*** ImageMagick/ChangeLog Wed Dec 2 09:33:26 1992
--- ImageMagick2.2.1/ChangeLog Mon Dec 21 14:12:35 1992
***************
*** 1,3 ****
--- 1,35 ----
+ ImageMagick 2.2.1
+
+ o The number of colors reported with the -verbose option was on
+ occasion incorrect.
+
+ o Color quantization was improved and in some cases sped up ~10%.
+
+ o Cleaned up image rotation code.
+
+ o Added -shear to mogrify options.
+
+ o Added a file type of HISTOGRAM to convert.
+
+ o Sometimes PBM image files did not have the correct number of bytes.
+
+ o Color reduced PPM images were being written at the full color resolution.
+
+ o Keypresses are no longer accepted during image configuration.
+
+ o Red, green, and blue values of a X constant image were set to the
+ red intensity of the background color.
+
+ o Clipped images did not show up correctly in the panning icon.
+
+ o `animate' no longer shows images out-of-order if the image scene number is
+ absent (thanks to kent@oddjob.uchicago.edu).
+
+ o ImageMagick now recognizes the X resource class with the first letter
+ of the client capitalized, i.e. 'Display.Visual: default' (thanks to
+ dws@ssec.wisc.edu).
+
+
X ImageMagick 2.2
X
X o When displaying a composite MIFF image created with `montage',
***************
*** 17,22 ****
--- 49,57 ----
X o Updated MIFF manual page to reflect 'montage' image header
X keyword.
X
+ o Add -colormap to `mogrify.' Use to color reduce an image to
+ a set of colors you choose.
+
X o Some compilers have read-only strings. ImageMagick no longer
X writes on read-only strings.
X
***************
*** 57,64 ****
X o Panning uses a pixmap for faster panning speed.
X
X o Rotate.c now uses a table to force range limits.
-
- o Fixed strcasecmp to work under VMS.
X
X o range table in quantize.c is allocated from the heap instead of
X the stack.
--- 92,97 ----
diff -r -c ImageMagick/Imakefile ImageMagick2.2.1/Imakefile
*** ImageMagick/Imakefile Wed Nov 25 14:22:24 1992
--- ImageMagick2.2.1/Imakefile Fri Dec 18 17:07:44 1992
***************
*** 25,34 ****
X
X #include "Magick.tmpl"
X
! MagickObjects= X.o image.o rotate.o quantize.o colors.o signature.o compress.o\
X alien.o PreRvIcccm.o
X
! SRCS= display.c X.c image.c rotate.c quantize.c colors.c signature.c\
X compress.c alien.c PreRvIcccm.c
X OBJS= display.o $(MagickObjects)
X AnimateObjects= animate.o $(MagickObjects)
--- 25,34 ----
X
X #include "Magick.tmpl"
X
! MagickObjects= X.o image.o shear.o quantize.o colors.o signature.o compress.o\
X alien.o PreRvIcccm.o
X
! SRCS= display.c X.c image.c shear.c quantize.c colors.c signature.c\
X compress.c alien.c PreRvIcccm.c
X OBJS= display.o $(MagickObjects)
X AnimateObjects= animate.o $(MagickObjects)
diff -r -c ImageMagick/Make.com ImageMagick2.2.1/Make.com
*** ImageMagick/Make.com Wed Jun 24 10:40:27 1992
--- ImageMagick2.2.1/Make.com Fri Dec 18 17:08:13 1992
***************
*** 12,18 ****
X $call Make display
X $call Make X
X $call Make image
! $call Make rotate
X $call Make quantize
X $call Make colors
X $call Make signature
--- 12,18 ----
X $call Make display
X $call Make X
X $call Make image
! $call Make shear
X $call Make quantize
X $call Make colors
X $call Make signature
***************
*** 20,26 ****
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' display,X,image,rotate,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
--- 20,26 ----
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' display,X,image,shear,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
***************
*** 33,39 ****
X $call Make import
X $call Make X
X $call Make image
! $call Make rotate
X $call Make quantize
X $call Make colors
X $call Make signature
--- 33,39 ----
X $call Make import
X $call Make X
X $call Make image
! $call Make shear
X $call Make quantize
X $call Make colors
X $call Make signature
***************
*** 41,47 ****
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' import,X,image,rotate,quantize,colors,signature,compress, -
X alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
--- 41,47 ----
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' import,X,image,shear,quantize,colors,signature,compress, -
X alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
***************
*** 54,60 ****
X $call Make XtoPS
X $call Make X
X $call Make image
! $call Make rotate
X $call Make quantize
X $call Make colors
X $call Make signature
--- 54,60 ----
X $call Make XtoPS
X $call Make X
X $call Make image
! $call Make shear
X $call Make quantize
X $call Make colors
X $call Make signature
***************
*** 61,67 ****
X $call Make compress
X $call Make PreRvIcccm
X $
! $link'link_options' XtoPS,X,image,rotate,quantize,colors,signature,compress, -
X alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
--- 61,67 ----
X $call Make compress
X $call Make PreRvIcccm
X $
! $link'link_options' XtoPS,X,image,shear,quantize,colors,signature,compress, -
X alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
***************
*** 74,80 ****
X $call Make animate
X $call Make X
X $call Make image
! $call Make rotate
X $call Make quantize
X $call Make colors
X $call Make signature
--- 74,80 ----
X $call Make animate
X $call Make X
X $call Make image
! $call Make shear
X $call Make quantize
X $call Make colors
X $call Make signature
***************
*** 82,88 ****
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' animate,X,image,rotate,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
--- 82,88 ----
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' animate,X,image,shear,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
***************
*** 95,101 ****
X $call Make montage
X $call Make X
X $call Make image
! $call Make rotate
X $call Make quantize
X $call Make colors
X $call Make compress
--- 95,101 ----
X $call Make montage
X $call Make X
X $call Make image
! $call Make shear
X $call Make quantize
X $call Make colors
X $call Make compress
***************
*** 102,108 ****
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' montage,X,image,rotate,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
--- 102,108 ----
X $call Make alien
X $call Make PreRvIcccm
X $
! $link'link_options' montage,X,image,shear,quantize,colors,signature, -
X compress,alien,PreRvIcccm,sys$input:/opt
X sys$share:decw$xlibshr.exe/share
X $
diff -r -c ImageMagick/Makefile ImageMagick2.2.1/Makefile
*** ImageMagick/Makefile Thu Jun 11 21:45:51 1992
--- ImageMagick2.2.1/Makefile Fri Dec 18 17:08:13 1992
***************
*** 45,51 ****
X DEFINES= $(JPEG) $(JPEG_INCLUDES) $(TIFF) $(TIFF_INCLUDES)
X SYS_LIBRARIES= $(XLIB) $(JPEG_LIBRARIES) $(TIFF_LIBRARIES) -lm
X
! MagickObjects= X.o image.o rotate.o quantize.o colors.o signature.o compress.o\
X alien.o PreRvIcccm.o
X
X DisplayObjects= display.o $(MagickObjects)
--- 45,51 ----
X DEFINES= $(JPEG) $(JPEG_INCLUDES) $(TIFF) $(TIFF_INCLUDES)
X SYS_LIBRARIES= $(XLIB) $(JPEG_LIBRARIES) $(TIFF_LIBRARIES) -lm
X
! MagickObjects= X.o image.o shear.o quantize.o colors.o signature.o compress.o\
X alien.o PreRvIcccm.o
X
X DisplayObjects= display.o $(MagickObjects)
diff -r -c ImageMagick/Manifest.ps ImageMagick2.2.1/Manifest.ps
*** ImageMagick/Manifest.ps Wed Nov 25 14:23:10 1992
--- ImageMagick2.2.1/Manifest.ps Fri Dec 18 17:09:13 1992
***************
*** 52,65 ****
X 90 362 m(montage.man)s
X 90 352 m(quantize.c)s
X 90 342 m(quantize.man)s
! 90 332 m(rotate.c)s
! 180 322 m(Makefile)s
! 180 312 m(README)s
! 180 302 m(dna.script)s
! 90 312 m(scenes)s
! (scenes) stringwidth pop 91.0 add 315.3 m
! [ 325.3 315.3 305.3]
X {gsave 176.0 exch lineto stroke grestore} forall
X 90 292 m(signature.c)s
X 180 282 m(Imakefile)s
X 180 272 m(MIFFtoSTEREO.c)s
--- 52,65 ----
X 90 362 m(montage.man)s
X 90 352 m(quantize.c)s
X 90 342 m(quantize.man)s
! 180 332 m(Makefile)s
! 180 322 m(README)s
! 180 312 m(dna.script)s
! 90 322 m(scenes)s
! (scenes) stringwidth pop 91.0 add 325.3 m
! [ 335.3 325.3 315.3]
X {gsave 176.0 exch lineto stroke grestore} forall
+ 90 302 m(shear.c)s
X 90 292 m(signature.c)s
X 180 282 m(Imakefile)s
X 180 272 m(MIFFtoSTEREO.c)s
***************
*** 89,94 ****
X {gsave 176.0 exch lineto stroke grestore} forall
X 0 444 m(ImageMagick)s
X (ImageMagick) stringwidth pop 1.0 add 447.8 m
! [ 735.3 725.3 715.3 705.3 695.3 685.3 675.3 665.3 655.3 645.3 635.3 625.3 615.3 605.3 595.3 585.3 575.3 565.3 555.3 545.3 535.3 525.3 515.3 505.3 495.3 485.3 475.3 465.3 435.3 405.3 395.3 385.3 375.3 365.3 355.3 345.3 335.3 315.3 295.3 250.3 160.3]
X {gsave 86.0 exch lineto stroke grestore} forall
X showpage
--- 89,94 ----
X {gsave 176.0 exch lineto stroke grestore} forall
X 0 444 m(ImageMagick)s
X (ImageMagick) stringwidth pop 1.0 add 447.8 m
! [ 735.3 725.3 715.3 705.3 695.3 685.3 675.3 665.3 655.3 645.3 635.3 625.3 615.3 605.3 595.3 585.3 575.3 565.3 555.3 545.3 535.3 525.3 515.3 505.3 495.3 485.3 475.3 465.3 435.3 405.3 395.3 385.3 375.3 365.3 355.3 345.3 325.3 305.3 295.3 250.3 160.3]
X {gsave 86.0 exch lineto stroke grestore} forall
X showpage
diff -r -c ImageMagick/README ImageMagick2.2.1/README
*** ImageMagick/README Thu Dec 10 15:16:54 1992
--- ImageMagick2.2.1/README Fri Dec 18 17:10:28 1992
***************
*** 234,239 ****
--- 234,244 ----
X
X Illegal unit size: 8 found in routine: _normalizeimagebits
X
+ If alien.c does not compile on your HP, type defining
+ -DXLIB_ILLEGAL_ACCESS when compiling. If `display' dumps core
+ when exiting, remove XCloseDisplay near the last line of
+ display.c.
+
X 4. On occasion, a window manager (twm) may get in strange state which will
X cause the display program to work improperly. Fix this by restarting the
X window manager.
diff -r -c ImageMagick/X.c ImageMagick2.2.1/X.c
*** ImageMagick/X.c Mon Dec 7 17:23:19 1992
--- ImageMagick2.2.1/X.c Mon Dec 21 14:12:34 1992
***************
*** 62,68 ****
X External declarations.
X */
X extern char
! *application_name;
X
X extern void
X Error _Declare((char *,char *));
--- 62,68 ----
X External declarations.
X */
X extern char
! *client_name;
X
X extern void
X Error _Declare((char *,char *));
***************
*** 136,144 ****
X % greater than, equal to, or less than second. The two strings are
X % assumed to be encoded using ISO 8859-1.
X %
! % The format of the Latin1Upper routine is:
X %
! % Latin1Upper(first,second)
X %
X % A description of each parameter follows:
X %
--- 136,144 ----
X % greater than, equal to, or less than second. The two strings are
X % assumed to be encoded using ISO 8859-1.
X %
! % The format of the Latin1Compare routine is:
X %
! % Latin1Compare(first,second)
X %
X % A description of each parameter follows:
X %
***************
*** 386,392 ****
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,application_name,&resource_info);
X /*
X Initialize visual info.
X */
--- 386,392 ----
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,client_name,&resource_info);
X /*
X Initialize visual info.
X */
***************
*** 1117,1123 ****
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,application_name,&resource_info);
X /*
X Initialize visual info.
X */
--- 1117,1123 ----
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,client_name,&resource_info);
X /*
X Initialize visual info.
X */
***************
*** 1129,1135 ****
X return((Image *) NULL);
X }
X /*
! Determine background foreground colors.
X */
X map_info.colormap=XDefaultColormap(display,visual_info->screen);
X XGetPixelInfo(display,visual_info,&map_info,&resource_info,(Image *) NULL,
--- 1129,1135 ----
X return((Image *) NULL);
X }
X /*
! Determine border color.
X */
X map_info.colormap=XDefaultColormap(display,visual_info->screen);
X XGetPixelInfo(display,visual_info,&map_info,&resource_info,(Image *) NULL,
***************
*** 1167,1175 ****
X DestroyImage(image);
X return((Image *) NULL);
X }
! image->colormap[0].red=pixel_info.background_color.red >> 8;
! image->colormap[0].green=pixel_info.background_color.red >> 8;
! image->colormap[0].blue=pixel_info.background_color.red >> 8;
X p=image->pixels;
X for (i=0; i < (image->columns*image->rows); i++)
X {
--- 1167,1175 ----
X DestroyImage(image);
X return((Image *) NULL);
X }
! image->colormap[0].red=pixel_info.border_color.red >> 8;
! image->colormap[0].green=pixel_info.border_color.green >> 8;
! image->colormap[0].blue=pixel_info.border_color.blue >> 8;
X p=image->pixels;
X for (i=0; i < (image->columns*image->rows); i++)
X {
***************
*** 1372,1379 ****
X */
X (void) XParseGeometry(annotate_info->geometry,&x,&y,&width,&height);
X if ((width != annotate_image->columns) || (height != annotate_image->rows))
! TransformImage(&annotate_image,(char *) NULL,
! annotate_info->geometry,(char *) NULL);
X if (annotate_info->degrees != 0.0)
X {
X Image
--- 1372,1379 ----
X */
X (void) XParseGeometry(annotate_info->geometry,&x,&y,&width,&height);
X if ((width != annotate_image->columns) || (height != annotate_image->rows))
! TransformImage(&annotate_image,(char *) NULL,annotate_info->geometry,
! (char *) NULL);
X if (annotate_info->degrees != 0.0)
X {
X Image
***************
*** 1576,1586 ****
X #define MaxIconSize 64
X
X int
X number_sizes;
X
X unsigned int
X icon_height,
! icon_width;
X
X unsigned long int
X scale_factor;
--- 1576,1589 ----
X #define MaxIconSize 64
X
X int
+ i,
X number_sizes;
X
X unsigned int
+ height,
X icon_height,
! icon_width,
! width;
X
X unsigned long int
X scale_factor;
***************
*** 1622,1636 ****
X icon_size->height_inc=1;
X }
X /*
X Look for an icon size that maintains the aspect ratio of image.
X */
! scale_factor=UpShift(icon_size->max_width)/image->columns;
! if (scale_factor > (UpShift(icon_size->max_height)/image->rows))
! scale_factor=UpShift(icon_size->max_height)/image->rows;
X icon_width=icon_size->min_width;
X while (icon_width < icon_size->max_width)
X {
! if (icon_width >= (DownShift(image->columns*scale_factor)))
X break;
X icon_width+=icon_size->width_inc;
X }
--- 1625,1646 ----
X icon_size->height_inc=1;
X }
X /*
+ Determine aspect ratio of image.
+ */
+ width=image->columns;
+ height=image->rows;
+ if (window->clip_geometry)
+ (void) XParseGeometry(window->clip_geometry,&i,&i,&width,&height);
+ /*
X Look for an icon size that maintains the aspect ratio of image.
X */
! scale_factor=UpShift(icon_size->max_width)/width;
! if (scale_factor > (UpShift(icon_size->max_height)/height))
! scale_factor=UpShift(icon_size->max_height)/height;
X icon_width=icon_size->min_width;
X while (icon_width < icon_size->max_width)
X {
! if (icon_width >= (DownShift(width*scale_factor)))
X break;
X icon_width+=icon_size->width_inc;
X }
***************
*** 1637,1643 ****
X icon_height=icon_size->min_height;
X while (icon_height < icon_size->max_height)
X {
! if (icon_height >= (DownShift(image->rows*scale_factor)))
X break;
X icon_height+=icon_size->height_inc;
X }
--- 1647,1653 ----
X icon_height=icon_size->min_height;
X while (icon_height < icon_size->max_height)
X {
! if (icon_height >= (DownShift(height*scale_factor)))
X break;
X icon_height+=icon_size->height_inc;
X }
***************
*** 2352,2358 ****
X %
X % The format of the XGetResource routine is:
X %
! % value=XGetResource(database,application_name,name,class,resource_default)
X %
X % A description of each parameter follows:
X %
--- 2362,2368 ----
X %
X % The format of the XGetResource routine is:
X %
! % value=XGetResource(database,client,keyword,resource_default)
X %
X % A description of each parameter follows:
X %
***************
*** 2363,2388 ****
X % o database: Specifies a resource database; returned from
X % XrmGetStringDatabase.
X %
! % o application_name: Specifies the application name used to retrieve
X % resource info from the X server database.
X %
! % o name: Specifies the name of the value being retrieved.
X %
- % o class: Specifies the class of the value being retrieved.
- %
X % o resource_default: Specifies the default value to return if the query
! % fails to find the specified name/class.
X %
X %
X */
! char *XGetResource(database,application_name,name,class,resource_default)
X XrmDatabase
X database;
X
X char
! *application_name,
! *name,
! *class,
X *resource_default;
X {
X char
--- 2373,2395 ----
X % o database: Specifies a resource database; returned from
X % XrmGetStringDatabase.
X %
! % o client: Specifies the application name used to retrieve
X % resource info from the X server database.
X %
! % o keyword: Specifies the keyword of the value being retrieved.
X %
X % o resource_default: Specifies the default value to return if the query
! % fails to find the specified keyword/class.
X %
X %
X */
! char *XGetResource(database,client,keyword,resource_default)
X XrmDatabase
X database;
X
X char
! *client,
! *keyword,
X *resource_default;
X {
X char
***************
*** 2399,2409 ****
X if (database == (XrmDatabase) NULL)
X return(resource_default);
X *resource_name='\0';
- if (name != (char *) NULL)
- (void) sprintf(resource_name,"%s.%s\0",application_name,name);
X *resource_class='\0';
! if (class != (char *) NULL)
! (void) sprintf(resource_class,"%s.%s\0",application_name,class);
X status=XrmGetResource(database,resource_name,resource_class,&resource_type,
X &resource_value);
X if (status == False)
--- 2406,2442 ----
X if (database == (XrmDatabase) NULL)
X return(resource_default);
X *resource_name='\0';
X *resource_class='\0';
! if (keyword != (char *) NULL)
! {
! unsigned char
! c,
! k;
!
! /*
! Initialize resource keyword and class.
! */
! (void) sprintf(resource_name,"%s.%s\0",client,keyword);
! c=(*client);
! if ((c >= XK_a) && (c <= XK_z))
! c-=(XK_a-XK_A);
! else
! if ((c >= XK_agrave) && (c <= XK_odiaeresis))
! c-=(XK_agrave-XK_Agrave);
! else
! if ((c >= XK_oslash) && (c <= XK_thorn))
! c-=(XK_oslash-XK_Ooblique);
! k=(*keyword);
! if ((k >= XK_a) && (k <= XK_z))
! k-=(XK_a-XK_A);
! else
! if ((k >= XK_agrave) && (k <= XK_odiaeresis))
! k-=(XK_agrave-XK_Agrave);
! else
! if ((k >= XK_oslash) && (k <= XK_thorn))
! k-=(XK_oslash-XK_Ooblique);
! (void) sprintf(resource_class,"%c%s.%c%s\0",c,client+1,k,keyword+1);
! }
X status=XrmGetResource(database,resource_name,resource_class,&resource_type,
X &resource_value);
X if (status == False)
***************
*** 2426,2432 ****
X %
X % The format of the XGetResourceInfo routine is:
X %
! % XGetResourceInfo(resource_database,application_name,resource_info)
X %
X % A description of each parameter follows:
X %
--- 2459,2465 ----
X %
X % The format of the XGetResourceInfo routine is:
X %
! % XGetResourceInfo(resource_database,client_name,resource_info)
X %
X % A description of each parameter follows:
X %
***************
*** 2433,2439 ****
X % o resource_database: Specifies a resource database; returned from
X % XrmGetStringDatabase.
X %
! % o application_name: Specifies the application name used to retrieve
X % resource info from the X server database.
X %
X % o resource_info: Specifies a pointer to a X11 XResourceInfo structure.
--- 2466,2472 ----
X % o resource_database: Specifies a resource database; returned from
X % XrmGetStringDatabase.
X %
! % o client_name: Specifies the application name used to retrieve
X % resource info from the X server database.
X %
X % o resource_info: Specifies a pointer to a X11 XResourceInfo structure.
***************
*** 2440,2451 ****
X %
X %
X */
! void XGetResourceInfo(resource_database,application_name,resource_info)
X XrmDatabase
X resource_database;
X
X char
! *application_name;
X
X XResourceInfo
X *resource_info;
--- 2473,2484 ----
X %
X %
X */
! void XGetResourceInfo(resource_database,client_name,resource_info)
X XrmDatabase
X resource_database;
X
X char
! *client_name;
X
X XResourceInfo
X *resource_info;
***************
*** 2456,2473 ****
X /*
X Initialize resource info fields.
X */
! resource_value=XGetResource(resource_database,application_name,"backdrop",
! (char *) NULL,"False");
X resource_info->backdrop=IsTrue(resource_value);
! resource_info->background_color=XGetResource(resource_database,
! application_name,"background","Background","black");
! resource_info->border_color=XGetResource(resource_database,application_name,
! "borderColor","BorderColor","white");
! resource_value=XGetResource(resource_database,application_name,"borderWidth",
! "BorderWidth","2");
X resource_info->border_width=atoi(resource_value);
! resource_value=XGetResource(resource_database,application_name,"colormap",
! (char *) NULL,"shared");
X resource_info->colormap=UndefinedColormap;
X if (Latin1Compare("private",resource_value) == 0)
X resource_info->colormap=PrivateColormap;
--- 2489,2504 ----
X /*
X Initialize resource info fields.
X */
! resource_value=XGetResource(resource_database,client_name,"backdrop","False");
X resource_info->backdrop=IsTrue(resource_value);
! resource_info->background_color=
! XGetResource(resource_database,client_name,"background","black");
! resource_info->border_color=
! XGetResource(resource_database,client_name,"borderColor","white");
! resource_value=XGetResource(resource_database,client_name,"borderWidth","2");
X resource_info->border_width=atoi(resource_value);
! resource_value=
! XGetResource(resource_database,client_name,"colormap","shared");
X resource_info->colormap=UndefinedColormap;
X if (Latin1Compare("private",resource_value) == 0)
X resource_info->colormap=PrivateColormap;
***************
*** 2475,2485 ****
X resource_info->colormap=SharedColormap;
X if (resource_info->colormap == UndefinedColormap)
X Warning("unrecognized colormap type",resource_value);
! resource_value=XGetResource(resource_database,application_name,"colors",
! (char *) NULL,"0");
X resource_info->number_colors=atoi(resource_value);
! resource_value=XGetResource(resource_database,application_name,"colorspace",
! (char *) NULL,"rgb");
X resource_info->colorspace=UndefinedColorspace;
X if (Latin1Compare("gray",resource_value) == 0)
X resource_info->colorspace=GRAYColorspace;
--- 2506,2514 ----
X resource_info->colormap=SharedColormap;
X if (resource_info->colormap == UndefinedColormap)
X Warning("unrecognized colormap type",resource_value);
! resource_value=XGetResource(resource_database,client_name,"colors","0");
X resource_info->number_colors=atoi(resource_value);
! resource_value=XGetResource(resource_database,client_name,"colorspace","rgb");
X resource_info->colorspace=UndefinedColorspace;
X if (Latin1Compare("gray",resource_value) == 0)
X resource_info->colorspace=GRAYColorspace;
***************
*** 2493,2533 ****
X resource_info->colorspace=XYZColorspace;
X if (resource_info->colorspace == UndefinedColorspace)
X Warning("unrecognized colorspace type",resource_value);
! resource_value=XGetResource(resource_database,application_name,"debug",
! (char *) NULL,"False");
X resource_info->debug=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"delay",
! (char *) NULL,"0");
X resource_info->delay=atoi(resource_value);
! resource_value=XGetResource(resource_database,application_name,"dither",
! (char *) NULL,"False");
X resource_info->dither=IsTrue(resource_value);
! resource_info->font=XGetResource(resource_database,application_name,
! "font","Font",(char *) NULL);
! resource_info->font_name[0]=XGetResource(resource_database,application_name,
! "font1","Font1","fixed");
! resource_info->font_name[1]=XGetResource(resource_database,application_name,
! "font2","Font2","variable");
! resource_info->font_name[2]=XGetResource(resource_database,application_name,
! "font3","Font3","5x8");
! resource_info->font_name[3]=XGetResource(resource_database,application_name,
! "font4","Font4","6x10");
! resource_info->font_name[4]=XGetResource(resource_database,application_name,
! "font5","Font5","7x13bold");
! resource_info->font_name[5]=XGetResource(resource_database,application_name,
! "font6","Font6","8x13bold");
! resource_info->font_name[6]=XGetResource(resource_database,application_name,
! "font7","Font7","9x15bold");
! resource_info->font_name[7]=XGetResource(resource_database,application_name,
! "font8","Font8","10x20");
! resource_info->font_name[8]=XGetResource(resource_database,application_name,
! "font9","Font9","12x24");
! resource_info->foreground_color=XGetResource(resource_database,
! application_name,"foreground","Foreground","white");
! resource_info->icon_geometry=XGetResource(resource_database,
! application_name,"iconGeometry","IconGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"gravity",
! (char *) NULL,"Center");
X resource_info->gravity=(-1);
X if (Latin1Compare("Forget",resource_value) == 0)
X resource_info->gravity=ForgetGravity;
--- 2522,2558 ----
X resource_info->colorspace=XYZColorspace;
X if (resource_info->colorspace == UndefinedColorspace)
X Warning("unrecognized colorspace type",resource_value);
! resource_value=XGetResource(resource_database,client_name,"debug","False");
X resource_info->debug=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"delay","0");
X resource_info->delay=atoi(resource_value);
! resource_value=XGetResource(resource_database,client_name,"dither","False");
X resource_info->dither=IsTrue(resource_value);
! resource_info->font=
! XGetResource(resource_database,client_name,"font",(char *) NULL);
! resource_info->font_name[0]=
! XGetResource(resource_database,client_name,"font1","fixed");
! resource_info->font_name[1]=
! XGetResource(resource_database,client_name,"font2","variable");
! resource_info->font_name[2]=
! XGetResource(resource_database,client_name,"font3","5x8");
! resource_info->font_name[3]=
! XGetResource(resource_database,client_name,"font4","6x10");
! resource_info->font_name[4]=
! XGetResource(resource_database,client_name,"font5","7x13bold");
! resource_info->font_name[5]=
! XGetResource(resource_database,client_name,"font6","8x13bold");
! resource_info->font_name[6]=
! XGetResource(resource_database,client_name,"font7","9x15bold");
! resource_info->font_name[7]=
! XGetResource(resource_database,client_name,"font8","10x20");
! resource_info->font_name[8]=
! XGetResource(resource_database,client_name,"font9","12x24");
! resource_info->foreground_color=
! XGetResource(resource_database,client_name,"foreground","white");
! resource_info->icon_geometry=
! XGetResource(resource_database,client_name,"iconGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"gravity","Center");
X resource_info->gravity=(-1);
X if (Latin1Compare("Forget",resource_value) == 0)
X resource_info->gravity=ForgetGravity;
***************
*** 2552,2602 ****
X if (Latin1Compare("Static",resource_value) == 0)
X resource_info->gravity=StaticGravity;
X if (resource_info->gravity == (-1))
! Warning("unrecognized gravity type",resource_value);
! resource_value=XGetResource(resource_database,application_name,"iconic",
! "Iconic","False");
X resource_info->iconic=IsTrue(resource_value);
! resource_info->image_geometry=XGetResource(resource_database,
! application_name,"imageGeometry","ImageGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"magnify",
! (char *) NULL,"2");
X resource_info->magnify=atoi(resource_value);
! resource_info->map_type=XGetResource(resource_database,application_name,"map",
! "Map",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"monochrome",
! (char *) NULL,"False");
X resource_info->monochrome=IsTrue(resource_value);
! resource_info->name=XGetResource(resource_database,application_name,"name",
! "Name",(char *) NULL);
! resource_info->pen_color[0]=XGetResource(resource_database,application_name,
! "pen1","Pen1","black");
! resource_info->pen_color[1]=XGetResource(resource_database,application_name,
! "pen2","Pen2","blue");
! resource_info->pen_color[2]=XGetResource(resource_database,application_name,
! "pen3","Pen3","cyan");
! resource_info->pen_color[3]=XGetResource(resource_database,application_name,
! "pen4","Pen4","green");
! resource_info->pen_color[4]=XGetResource(resource_database,application_name,
! "pen5","Pen5","gray");
! resource_info->pen_color[5]=XGetResource(resource_database,application_name,
! "pen6","Pen6","red");
! resource_info->pen_color[6]=XGetResource(resource_database,application_name,
! "pen7","Pen7","magenta");
! resource_info->pen_color[7]=XGetResource(resource_database,application_name,
! "pen8","Pen8","yellow");
! resource_info->pen_color[8]=XGetResource(resource_database,application_name,
! "pen9","Pen9","white");
! resource_info->print_filename=XGetResource(resource_database,application_name,
! "printFilename",(char *) NULL,(char *) NULL);
! resource_info->title=XGetResource(resource_database,application_name,"title",
! "Title",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"treeDepth",
! (char *) NULL,"0");
X resource_info->tree_depth=atoi(resource_value);
! resource_info->write_filename=XGetResource(resource_database,application_name,
! "writeFilename",(char *) NULL,(char *) NULL);
! resource_info->visual_type=XGetResource(resource_database,application_name,
! "visual","Visual",(char *) NULL);
X }
X
X /*
--- 2577,2627 ----
X if (Latin1Compare("Static",resource_value) == 0)
X resource_info->gravity=StaticGravity;
X if (resource_info->gravity == (-1))
! {
! Warning("unrecognized gravity type",resource_value);
! resource_info->gravity=CenterGravity;
! }
! resource_value=XGetResource(resource_database,client_name,"iconic","False");
X resource_info->iconic=IsTrue(resource_value);
! resource_info->image_geometry=
! XGetResource(resource_database,client_name,"imageGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"magnify","2");
X resource_info->magnify=atoi(resource_value);
! resource_info->map_type=
! XGetResource(resource_database,client_name,"map",(char *) NULL);
! resource_value=
! XGetResource(resource_database,client_name,"monochrome","False");
X resource_info->monochrome=IsTrue(resource_value);
! resource_info->name=
! XGetResource(resource_database,client_name,"name",(char *) NULL);
! resource_info->pen_color[0]=
! XGetResource(resource_database,client_name,"pen1","black");
! resource_info->pen_color[1]=
! XGetResource(resource_database,client_name,"pen2","blue");
! resource_info->pen_color[2]=
! XGetResource(resource_database,client_name,"pen3","cyan");
! resource_info->pen_color[3]=
! XGetResource(resource_database,client_name,"pen4","green");
! resource_info->pen_color[4]=
! XGetResource(resource_database,client_name,"pen5","gray");
! resource_info->pen_color[5]=
! XGetResource(resource_database,client_name,"pen6","red");
! resource_info->pen_color[6]=
! XGetResource(resource_database,client_name,"pen7","magenta");
! resource_info->pen_color[7]=
! XGetResource(resource_database,client_name,"pen8","yellow");
! resource_info->pen_color[8]=
! XGetResource(resource_database,client_name,"pen9","white");
! resource_info->print_filename=
! XGetResource(resource_database,client_name,"printFilename",(char *) NULL);
! resource_info->title=
! XGetResource(resource_database,client_name,"title",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"treeDepth","0");
X resource_info->tree_depth=atoi(resource_value);
! resource_info->write_filename=
! XGetResource(resource_database,client_name,"writeFilename",(char *) NULL);
! resource_info->visual_type=
! XGetResource(resource_database,client_name,"visual",(char *) NULL);
X }
X
X /*
***************
*** 2748,2754 ****
X clip_x,
X clip_y;
X
! unsigned
X clip_height,
X clip_width;
X
--- 2773,2779 ----
X clip_x,
X clip_y;
X
! unsigned int
X clip_height,
X clip_width;
X
diff -r -c ImageMagick/X.h ImageMagick2.2.1/X.h
*** ImageMagick/X.h Mon Dec 7 09:23:03 1992
--- ImageMagick2.2.1/X.h Fri Dec 18 17:07:28 1992
***************
*** 243,249 ****
X X utilities routines.
X */
X extern char
! *XGetResource _Declare((XrmDatabase,char *,char *,char *,char *)),
X *XVisualClassName _Declare((XVisualInfo *));
X
X extern Cursor
--- 243,249 ----
X X utilities routines.
X */
X extern char
! *XGetResource _Declare((XrmDatabase,char *,char *,char *)),
X *XVisualClassName _Declare((XVisualInfo *));
X
X extern Cursor
diff -r -c ImageMagick/XtoPS.c ImageMagick2.2.1/XtoPS.c
*** ImageMagick/XtoPS.c Mon Dec 7 09:12:50 1992
--- ImageMagick2.2.1/XtoPS.c Fri Dec 18 17:07:26 1992
***************
*** 87,93 ****
X Global declarations.
X */
X char
! *application_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- 87,93 ----
X Global declarations.
X */
X char
! *client_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 120,126 ****
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",application_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
--- 120,126 ----
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",client_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
***************
*** 167,173 ****
X "-window id select window with this id or name",
X (char *) NULL
X };
! (void) fprintf(stderr,"Usage: %s [options ...] file\n",application_name);
X (void) fprintf(stderr,"\nWhere options include:\n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
--- 167,173 ----
X "-window id select window with this id or name",
X (char *) NULL
X };
! (void) fprintf(stderr,"Usage: %s [options ...] file\n",client_name);
X (void) fprintf(stderr,"\nWhere options include:\n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
***************
*** 201,207 ****
X {
X char
X *filename,
- *image_geometry,
X *option,
X *resource_value,
X *scale_geometry,
--- 201,206 ----
***************
*** 238,244 ****
X /*
X Display usage profile if there are no command line arguments.
X */
! application_name=(*argv);
X if (argc < 2)
X Usage();
X /*
--- 237,243 ----
X /*
X Display usage profile if there are no command line arguments.
X */
! client_name=(*argv);
X if (argc < 2)
X Usage();
X /*
***************
*** 284,308 ****
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,application_name,&resource_info);
! resource_value=XGetResource(resource_database,application_name,"borders",
! (char *) NULL,"False");
X borders=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"frame",
! (char *) NULL,"False");
X frame=IsTrue(resource_value);
! image_geometry=XGetResource(resource_database,application_name,
! "imageGeometry","ImageGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"rotate",
! (char *) NULL,"False");
! scale_geometry=XGetResource(resource_database,application_name,
! "scaleGeometry","ScaleGeometry",(char *) NULL);
X degrees=atoi(resource_value);
! resource_value=XGetResource(resource_database,application_name,"screen",
! (char *) NULL,"False");
X screen=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"verbose",
! (char *) NULL,"False");
X verbose=IsTrue(resource_value);
X /*
X Check command syntax.
--- 283,300 ----
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,client_name,&resource_info);
! resource_value=XGetResource(resource_database,client_name,"borders","False");
X borders=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"frame","False");
X frame=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"rotate","False");
! scale_geometry=
! XGetResource(resource_database,client_name,"scaleGeometry",(char *) NULL);
X degrees=atoi(resource_value);
! resource_value=XGetResource(resource_database,client_name,"screen","False");
X screen=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"verbose","False");
X verbose=IsTrue(resource_value);
X /*
X Check command syntax.
***************
*** 359,365 ****
X i++;
X if (i == argc)
X Error("missing geometry on -geometry",(char *) NULL);
! image_geometry=argv[i];
X break;
X }
X case 'h':
--- 351,357 ----
X i++;
X if (i == argc)
X Error("missing geometry on -geometry",(char *) NULL);
! resource_info.image_geometry=argv[i];
X break;
X }
X case 'h':
***************
*** 442,449 ****
X image=ReadXImage(target_window,server_name,frame,screen,borders);
X if (image == (Image *) NULL)
X exit(1);
! if (image_geometry || scale_geometry)
! TransformImage(&image,(char *) NULL,image_geometry,scale_geometry);
X if ((degrees % 360) != 0)
X {
X Image
--- 434,442 ----
X image=ReadXImage(target_window,server_name,frame,screen,borders);
X if (image == (Image *) NULL)
X exit(1);
! if (resource_info.image_geometry || scale_geometry)
! TransformImage(&image,(char *) NULL,resource_info.image_geometry,
! scale_geometry);
X if ((degrees % 360) != 0)
X {
X Image
***************
*** 462,468 ****
X if (resource_info.monochrome)
X QuantizeImage(image,2,8,False,GRAYColorspace,True);
X (void) strcpy(image->filename,filename);
! (void) PrintImage(image,image_geometry);
X if (verbose)
X {
X /*
--- 455,461 ----
X if (resource_info.monochrome)
X QuantizeImage(image,2,8,False,GRAYColorspace,True);
X (void) strcpy(image->filename,filename);
! (void) PrintImage(image,resource_info.image_geometry);
X if (verbose)
X {
X /*
***************
*** 469,475 ****
X Display detailed info about the image.
X */
X if (image->class == DirectClass)
! image->colors=NumberColors(image);
X (void) fprintf(stderr,"[%u] %s %ux%u",image->scene,image->filename,
X image->columns,image->rows);
X if (image->class == DirectClass)
--- 462,468 ----
X Display detailed info about the image.
X */
X if (image->class == DirectClass)
! image->colors=NumberColors(image,(FILE *) NULL);
X (void) fprintf(stderr,"[%u] %s %ux%u",image->scene,image->filename,
X image->columns,image->rows);
X if (image->class == DirectClass)
diff -r -c ImageMagick/XtoPS.man ImageMagick2.2.1/XtoPS.man
*** ImageMagick/XtoPS.man Mon Dec 7 19:52:59 1992
--- ImageMagick2.2.1/XtoPS.man Fri Dec 18 17:07:31 1992
***************
*** 79,84 ****
--- 79,87 ----
X .B "-rotate \fIdegrees\fP"
X apply Paeth image rotation to the image.
X
+ Empty triangles left over from rotating the image are filled with
+ the color defined by the pixel at location (0,0).
+
X By default the image is output in portrait mode. Use \fB-rotate 90\fP to
X display the image in landscape mode.
X .TP 5
***************
*** 91,98 ****
X one factor is specified, both the width and height factors assume the
X value.
X
! Factors may be fractional. For example, a factor of 1.5 will increase the
! image size by one and one-half.
X .TP 5
X .B "-screen"
X This option indicates that the GetImage request used to obtain the image
--- 94,102 ----
X one factor is specified, both the width and height factors assume the
X value.
X
! Factors may be fractional. To increase the size of an image, use a
! scale factor greater than 1.0. To decrease an image's size, use a
! scale factor less than 1.0. Default is 1.0.
X .TP 5
X .B "-screen"
X This option indicates that the GetImage request used to obtain the image
diff -r -c ImageMagick/alien.c ImageMagick2.2.1/alien.c
*** ImageMagick/alien.c Tue Dec 8 11:16:04 1992
--- ImageMagick2.2.1/alien.c Sat Dec 19 02:57:52 1992
***************
*** 68,73 ****
--- 68,74 ----
X "FAX",
X "GIF",
X "GRAY",
+ "HISTOGRAM",
X "JPEG",
X "JPG",
X "MIFF",
***************
*** 92,99 ****
X External declarations.
X */
X extern char
! *application_name;
!
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X % %
--- 93,99 ----
X External declarations.
X */
X extern char
! *client_name;
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X % %
***************
*** 614,620 ****
X (void) free((char *) colormap);
X }
X image_count=0;
! while (1)
X {
X status=ReadData((char *) &c,1,1,image->file);
X if (status == False)
--- 614,620 ----
X (void) free((char *) colormap);
X }
X image_count=0;
! for ( ; ; )
X {
X status=ReadData((char *) &c,1,1,image->file);
X if (status == False)
***************
*** 4732,4737 ****
--- 4732,4784 ----
X return(True);
X }
X
+ /*
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % %
+ % %
+ % %
+ % W r i t e H I S T O G R A M I m a g e %
+ % %
+ % %
+ % %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Function WriteHISTOGRAMImage writes an image to a file in HISTOGRAM format.
+ % A list of unique pixel values and the number of times each occurs in the
+ % image is written to the file.
+ %
+ % The format of the WriteHISTOGRAMImage routine is:
+ %
+ % status=WriteAVSImage(image)
+ %
+ % A description of each parameter follows.
+ %
+ % o status: Function WriteImage return True if the image is written.
+ % False is returned is there is a memory shortage or if the image file
+ % fails to write.
+ %
+ % o image: A pointer to a Image structure.
+ %
+ %
+ */
+ static unsigned int WriteHISTOGRAMImage(image)
+ Image
+ *image;
+ {
+ /*
+ Open output image file.
+ */
+ OpenImage(image,"w");
+ if (image->file == (FILE *) NULL)
+ {
+ Warning("unable to open file",image->filename);
+ return(False);
+ }
+ (void) NumberColors(image,image->file);
+ CloseImage(image);
+ return(True);
+ }
+
X #ifdef AlienJPEG
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 5117,5126 ****
X */
X format='5';
X if (image->colors == 2)
! {
! format='4';
! packets/=8;
! }
X for (i=0; i < image->colors; i++)
X if ((image->colormap[i].red != image->colormap[i].green) ||
X (image->colormap[i].green != image->colormap[i].blue))
--- 5164,5170 ----
X */
X format='5';
X if (image->colors == 2)
! format='4';
X for (i=0; i < image->colors; i++)
X if ((image->colormap[i].red != image->colormap[i].green) ||
X (image->colormap[i].green != image->colormap[i].blue))
***************
*** 5192,5197 ****
--- 5236,5242 ----
X }
X p++;
X }
+ packets=q-pixels;
X break;
X }
X case '5':
***************
*** 5210,5229 ****
X }
X case '6':
X {
X /*
X Convert image to a PNM image.
X */
X (void) fprintf(image->file,"%d\n",MaxRGB);
! for (i=0; i < image->packets; i++)
! {
! for (j=0; j <= ((int) p->length); j++)
X {
! *q++=p->red;
! *q++=p->green;
! *q++=p->blue;
X }
! p++;
! }
X break;
X }
X }
--- 5255,5290 ----
X }
X case '6':
X {
+ unsigned short int
+ index;
+
X /*
X Convert image to a PNM image.
X */
X (void) fprintf(image->file,"%d\n",MaxRGB);
! if (image->class == DirectClass)
! for (i=0; i < image->packets; i++)
X {
! for (j=0; j <= ((int) p->length); j++)
! {
! *q++=p->red;
! *q++=p->green;
! *q++=p->blue;
! }
! p++;
X }
! else
! for (i=0; i < image->packets; i++)
! {
! for (j=0; j <= ((int) p->length); j++)
! {
! index=p->index;
! *q++=image->colormap[index].red;
! *q++=image->colormap[index].green;
! *q++=image->colormap[index].blue;
! }
! p++;
! }
X break;
X }
X }
***************
*** 6565,6570 ****
--- 6626,6637 ----
X ReadGRAYImage(alien_info);
X break;
X }
+ case 'H':
+ {
+ Warning("Cannot read HISTOGRAM images",alien_info->filename);
+ image=ReadImage(alien_info->filename);
+ break;
+ }
X case 'J':
X {
X image=ReadJPEGImage(alien_info);
***************
*** 6776,6781 ****
--- 6843,6853 ----
X status=WriteGIFImage(&alien_image);
X else
X status=WriteGRAYImage(&alien_image);
+ break;
+ }
+ case 'H':
+ {
+ status=WriteHISTOGRAMImage(&alien_image);
X break;
X }
X case 'J':
diff -r -c ImageMagick/animate.c ImageMagick2.2.1/animate.c
*** ImageMagick/animate.c Tue Dec 8 11:13:52 1992
--- ImageMagick2.2.1/animate.c Fri Dec 18 17:07:27 1992
***************
*** 139,145 ****
X Global declarations.
X */
X char
! *application_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- 139,145 ----
X Global declarations.
X */
X char
! *client_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 224,230 ****
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",application_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
--- 224,230 ----
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",client_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
***************
*** 306,313 ****
X (char *) NULL
X };
X (void) fprintf(stderr,
! "Usage: %s [-options ...] file [ [-options ...] file ...]\n",
! application_name);
X (void) fprintf(stderr,"\nWhere options include: \n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
--- 306,312 ----
X (char *) NULL
X };
X (void) fprintf(stderr,
! "Usage: %s [-options ...] file [ [-options ...] file ...]\n",client_name);
X (void) fprintf(stderr,"\nWhere options include: \n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
***************
*** 619,629 ****
X *manager_hints;
X
X /*
- Sort images by increasing scene number.
- */
- (void) qsort((void *) images,(int) number_scenes,sizeof(Image *),
- LinearCompare);
- /*
X Allocate standard colormap.
X */
X if (resource_info->debug)
--- 618,623 ----
***************
*** 689,694 ****
--- 683,697 ----
X magick_windows[number_windows++]=(&window->popup);
X for (i=0; i < number_windows; i++)
X magick_windows[i]->id=(Window) NULL;
+ /*
+ Sort images by increasing scene number.
+ */
+ i=0;
+ for (scene=0; scene < number_scenes; scene++)
+ i+=images[scene]->scene;
+ if (i > 0)
+ (void) qsort((void *) images,(int) number_scenes,sizeof(Image *),
+ LinearCompare);
X if (resource_info->map_type == (char *) NULL)
X if ((visual_info->class != TrueColor) &&
X (visual_info->class != DirectColor))
***************
*** 770,776 ****
X Initialize class and manager hints.
X */
X if (resource_info->name == (char *) NULL)
! class_hint->res_name=application_name;
X else
X class_hint->res_name=resource_info->name;
X class_hint->res_class=(char *) "ImageMagick";
--- 773,779 ----
X Initialize class and manager hints.
X */
X if (resource_info->name == (char *) NULL)
! class_hint->res_name=client_name;
X else
X class_hint->res_name=resource_info->name;
X class_hint->res_class=(char *) "ImageMagick";
***************
*** 1488,1494 ****
X /*
X Display usage profile if there are no command line arguments.
X */
! application_name=(*argv);
X if (argc < 2)
X Usage(True);
X /*
--- 1491,1497 ----
X /*
X Display usage profile if there are no command line arguments.
X */
! client_name=(*argv);
X if (argc < 2)
X Usage(True);
X /*
***************
*** 1555,1576 ****
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,application_name,&resource_info);
! clip_geometry=XGetResource(resource_database,application_name,"clipGeometry",
! "ClipGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"gamma",
! (char *) NULL,"0.0");
X gamma=atof(resource_value);
! resource_value=XGetResource(resource_database,application_name,"reflect",
! (char *) NULL,"False");
X reflect=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"rotate",
! (char *) NULL,"0");
X degrees=atoi(resource_value);
! scale_geometry=XGetResource(resource_database,application_name,
! "scaleGeometry","ScaleGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"verbose",
! (char *) NULL,"False");
X verbose=IsTrue(resource_value);
X /*
X Parse command line.
--- 1558,1575 ----
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,client_name,&resource_info);
! clip_geometry=
! XGetResource(resource_database,client_name,"clipGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"gamma","0.0");
X gamma=atof(resource_value);
! resource_value=XGetResource(resource_database,client_name,"reflect","False");
X reflect=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"rotate","0");
X degrees=atoi(resource_value);
! scale_geometry=
! XGetResource(resource_database,client_name,"scaleGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"verbose","False");
X verbose=IsTrue(resource_value);
X /*
X Parse command line.
***************
*** 2036,2042 ****
X Initialize image error attributes.
X */
X if (image->class == DirectClass)
! image->colors=NumberColors(image);
X total_colors=image->colors;
X }
X if (resource_info.colorspace == GRAYColorspace)
--- 2035,2041 ----
X Initialize image error attributes.
X */
X if (image->class == DirectClass)
! image->colors=NumberColors(image,(FILE *) NULL);
X total_colors=image->colors;
X }
X if (resource_info.colorspace == GRAYColorspace)
diff -r -c ImageMagick/animate.man ImageMagick2.2.1/animate.man
*** ImageMagick/animate.man Mon Dec 7 19:52:59 1992
--- ImageMagick2.2.1/animate.man Fri Dec 18 17:07:31 1992
***************
*** 185,190 ****
--- 185,193 ----
X .TP 5
X .B "-rotate \fIdegrees\fP"
X apply Paeth image rotation to the image.
+
+ Empty triangles left over from rotating the image are filled with
+ the color defined by the pixel at location (0,0).
X .TP 5
X .B "-scale \fI<width factor>x<height factor>\fP"
X preferred size factors of the image.
***************
*** 195,202 ****
X one factor is specified, both the width and height factors assume the
X value.
X
! Factors may be fractional. For example, a factor of 1.5 will increase the
! image size by one and one-half.
X
X The equivalent X resource for this option is \fBscaleGeometry\fP
X (class \fBScaleGeometry\fP). See \fBX RESOURCES\fP for details.
--- 198,206 ----
X one factor is specified, both the width and height factors assume the
X value.
X
! Factors may be fractional. To increase the size of an image, use a
! scale factor greater than 1.0. To decrease an image's size, use a
! scale factor less than 1.0. Default is 1.0.
X
X The equivalent X resource for this option is \fBscaleGeometry\fP
X (class \fBScaleGeometry\fP). See \fBX RESOURCES\fP for details.
diff -r -c ImageMagick/colors.c ImageMagick2.2.1/colors.c
*** ImageMagick/colors.c Mon Dec 7 09:14:54 1992
--- ImageMagick2.2.1/colors.c Fri Dec 18 17:07:27 1992
***************
*** 66,74 ****
--- 66,78 ----
X *child[8];
X
X unsigned char
+ level,
X mid_red,
X mid_green,
X mid_blue;
+
+ unsigned long int
+ number_colors;
X } Node;
X
X typedef struct _Nodes
***************
*** 83,90 ****
X typedef struct _Cube
X {
X Node
! *root,
! *leaf;
X
X unsigned int
X colors;
--- 87,93 ----
X typedef struct _Cube
X {
X Node
! *root;
X
X unsigned int
X colors;
***************
*** 109,115 ****
X External declarations.
X */
X extern char
! *application_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- 112,118 ----
X External declarations.
X */
X extern char
! *client_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 116,121 ****
--- 119,170 ----
X % %
X % %
X % %
+ % H i s t o g r a m %
+ % %
+ % %
+ % %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Procedure Histogram traverses the color cube tree and produces a list of
+ % unique pixel field values and the number of times each occurs in the image.
+ %
+ % The format of the Histogram routine is:
+ %
+ % Histogram(node,file)
+ %
+ % A description of each parameter follows.
+ %
+ % o node: The address of a structure of type Node which points to a
+ % node in the color cube tree that is to be pruned.
+ %
+ %
+ */
+ static void Histogram(node,file)
+ register Node
+ *node;
+
+ FILE
+ *file;
+ {
+ register unsigned int
+ id;
+
+ /*
+ Traverse any children.
+ */
+ for (id=0; id < 8; id++)
+ if (node->child[id] != (Node *) NULL)
+ Histogram(node->child[id],file);
+ if (node->level == MaxTreeDepth)
+ (void) fprintf(file,"%8d\t%d\t%d\t%d\n",node->number_colors,
+ node->mid_red,node->mid_green,node->mid_blue);
+ }
+
+ /*
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % %
+ % %
+ % %
X % I n i t i a l i z e N o d e %
X % %
X % %
***************
*** 127,136 ****
X %
X % The format of the InitializeNode routine is:
X %
! % node=InitializeNode(mid_red,mid_green,mid_blue)
X %
X % A description of each parameter follows.
X %
X % o mid_red: Specifies the mid point of the red axis for this node.
X %
X % o mid_green: Specifies the mid point of the green axis for this node.
--- 176,187 ----
X %
X % The format of the InitializeNode routine is:
X %
! % node=InitializeNode(level,mid_red,mid_green,mid_blue)
X %
X % A description of each parameter follows.
X %
+ % o level: Specifies the level in the classification the node resides.
+ %
X % o mid_red: Specifies the mid point of the red axis for this node.
X %
X % o mid_green: Specifies the mid point of the green axis for this node.
***************
*** 139,146 ****
X %
X %
X */
! static Node *InitializeNode(mid_red,mid_green,mid_blue)
! register unsigned char
X mid_red,
X mid_green,
X mid_blue;
--- 190,198 ----
X %
X %
X */
! static Node *InitializeNode(level,mid_red,mid_green,mid_blue)
! unsigned int
! level,
X mid_red,
X mid_green,
X mid_blue;
***************
*** 171,179 ****
--- 223,233 ----
X node=cube.node++;
X for (i=0; i < 8; i++)
X node->child[i]=(Node *) NULL;
+ node->level=level;
X node->mid_red=mid_red;
X node->mid_green=mid_green;
X node->mid_blue=mid_blue;
+ node->number_colors=0;
X return(node);
X }
X
***************
*** 192,198 ****
X %
X % The format of the NumberColors routine is:
X %
! % number_colors=NumberColors(image)
X %
X % A description of each parameter follows.
X %
--- 246,252 ----
X %
X % The format of the NumberColors routine is:
X %
! % number_colors=NumberColors(image,file)
X %
X % A description of each parameter follows.
X %
***************
*** 201,211 ****
X % run-length counts in the source image must be equal to or exceed
X % the number of pixels.
X %
X %
X */
! unsigned int NumberColors(image)
X Image
X *image;
X {
X Nodes
X *nodes;
--- 255,273 ----
X % run-length counts in the source image must be equal to or exceed
X % the number of pixels.
X %
+ % o file: An pointer to a FILE. If it is non-null a list of unique pixel
+ % field values and the number of times each occurs in the image is
+ % written to the file.
+ %
X %
+ %
X */
! unsigned int NumberColors(image,file)
X Image
X *image;
+
+ FILE
+ *file;
X {
X Nodes
X *nodes;
***************
*** 219,231 ****
X register Node
X *node;
X
- register unsigned char
- bisect,
- id;
-
X register unsigned int
X level;
X
X /*
X Initialize color description tree.
X */
--- 281,294 ----
X register Node
X *node;
X
X register unsigned int
+ count,
+ id,
X level;
X
+ unsigned int
+ bisect;
+
X /*
X Initialize color description tree.
X */
***************
*** 232,240 ****
X cube.node_list=(Nodes *) NULL;
X cube.colors=0;
X cube.free_nodes=0;
! cube.root=InitializeNode(MaxRGB >> 1,MaxRGB >> 1,MaxRGB >> 1);
! cube.leaf=InitializeNode(0,0,0);
! if ((cube.root == (Node *) NULL) || (cube.leaf == (Node *) NULL))
X {
X Warning("unable to count colors","memory allocation failed");
X return(0);
--- 295,302 ----
X cube.node_list=(Nodes *) NULL;
X cube.colors=0;
X cube.free_nodes=0;
! cube.root=InitializeNode(0,(MaxRGB+1) >> 1,(MaxRGB+1) >> 1,(MaxRGB+1) >> 1);
! if (cube.root == (Node *) NULL)
X {
X Warning("unable to count colors","memory allocation failed");
X return(0);
***************
*** 245,252 ****
X /*
X Start at the root and proceed level by level.
X */
X node=cube.root;
! for (level=1; level < MaxTreeDepth; level++)
X {
X id=(p->red >= node->mid_red ? 1 : 0) |
X (p->green >= node->mid_green ? 1 : 0) << 1 |
--- 307,315 ----
X /*
X Start at the root and proceed level by level.
X */
+ count=p->length+1;
X node=cube.root;
! for (level=1; level <= MaxTreeDepth; level++)
X {
X id=(p->red >= node->mid_red ? 1 : 0) |
X (p->green >= node->mid_green ? 1 : 0) << 1 |
***************
*** 253,263 ****
X (p->blue >= node->mid_blue ? 1 : 0) << 2;
X if (node->child[id] == (Node *) NULL)
X {
! bisect=(unsigned int) (1 << (MaxTreeDepth-level)) >> 1;
! node->child[id]=InitializeNode(
! node->mid_red+(id & 1 ? bisect : -bisect),
! node->mid_green+(id & 2 ? bisect : -bisect),
! node->mid_blue+(id & 4 ? bisect : -bisect));
X if (node->child[id] == (Node *) NULL)
X {
X Warning("unable to count colors","memory allocation failed");
--- 316,334 ----
X (p->blue >= node->mid_blue ? 1 : 0) << 2;
X if (node->child[id] == (Node *) NULL)
X {
! if (level == MaxTreeDepth)
! {
! node->child[id]=InitializeNode(level,p->red,p->green,p->blue);
! cube.colors++;
! }
! else
! {
! bisect=(unsigned int) (1 << (MaxTreeDepth-level)) >> 1;
! node->child[id]=InitializeNode(level,
! node->mid_red+(id & 1 ? bisect : -bisect),
! node->mid_green+(id & 2 ? bisect : -bisect),
! node->mid_blue+(id & 4 ? bisect : -bisect));
! }
X if (node->child[id] == (Node *) NULL)
X {
X Warning("unable to count colors","memory allocation failed");
***************
*** 266,281 ****
X }
X node=node->child[id];
X }
! id=(p->red >= node->mid_red ? 1 : 0) |
! (p->green >= node->mid_green ? 1 : 0) << 1 |
! (p->blue >= node->mid_blue ? 1 : 0) << 2;
! if (node->child[id] == (Node *) NULL)
! {
! node->child[id]=cube.leaf;
! cube.colors++;
! }
X p++;
X }
X /*
X Release color cube tree storage.
X */
--- 337,347 ----
X }
X node=node->child[id];
X }
! node->number_colors+=count;
X p++;
X }
+ if (file != (FILE *) NULL)
+ Histogram(cube.root,file);
X /*
X Release color cube tree storage.
X */
diff -r -c ImageMagick/compress.c ImageMagick2.2.1/compress.c
*** ImageMagick/compress.c Mon Dec 7 09:15:08 1992
--- ImageMagick2.2.1/compress.c Fri Dec 18 17:07:27 1992
***************
*** 159,165 ****
X External declarations.
X */
X extern char
! *application_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- 159,165 ----
X External declarations.
X */
X extern char
! *client_name;
X
X /*
X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 1091,1097 ****
X else
X displacement=MaxHashTable-k;
X next_pixel=False;
! while (1)
X {
X k-=displacement;
X if (k < 0)
--- 1091,1097 ----
X else
X displacement=MaxHashTable-k;
X next_pixel=False;
! for ( ; ; )
X {
X k-=displacement;
X if (k < 0)
diff -r -c ImageMagick/display.c ImageMagick2.2.1/display.c
*** ImageMagick/display.c Tue Dec 8 11:13:21 1992
--- ImageMagick2.2.1/display.c Mon Dec 21 14:12:34 1992
***************
*** 160,166 ****
X Global declarations.
X */
X char
! *application_name;
X
X /*
X Forward declarations.
--- 160,166 ----
X Global declarations.
X */
X char
! *client_name;
X
X /*
X Forward declarations.
***************
*** 218,224 ****
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",application_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
--- 218,224 ----
X *message,
X *qualifier;
X {
! (void) fprintf(stderr,"%s: %s",client_name,message);
X if (qualifier != (char *) NULL)
X (void) fprintf(stderr," (%s)",qualifier);
X (void) fprintf(stderr,".\n");
***************
*** 315,322 ****
X (char *) NULL
X };
X (void) fprintf(stderr,
! "Usage: %s [-options ...] file [ [-options ...] file ...]\n",
! application_name);
X (void) fprintf(stderr,"\nWhere options include: \n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
--- 315,321 ----
X (char *) NULL
X };
X (void) fprintf(stderr,
! "Usage: %s [-options ...] file [ [-options ...] file ...]\n",client_name);
X (void) fprintf(stderr,"\nWhere options include: \n");
X for (p=options; *p != (char *) NULL; p++)
X (void) fprintf(stderr," %s\n",*p);
***************
*** 2609,2615 ****
X Initialize class and manager hints.
X */
X if (resource_info->name == (char *) NULL)
! class_hint->res_name=application_name;
X else
X class_hint->res_name=resource_info->name;
X class_hint->res_class=(char *) "ImageMagick";
--- 2608,2614 ----
X Initialize class and manager hints.
X */
X if (resource_info->name == (char *) NULL)
! class_hint->res_name=client_name;
X else
X class_hint->res_name=resource_info->name;
X class_hint->res_class=(char *) "ImageMagick";
***************
*** 3203,3208 ****
--- 3202,3215 ----
X }
X case KeyPress:
X {
+ if (*state & ReconfigureImageState)
+ {
+ /*
+ No key press during image reconfiguration.
+ */
+ XBell(display,0);
+ break;
+ }
X /*
X Respond to a user key press.
X */
***************
*** 3415,3420 ****
--- 3422,3428 ----
X /*
X Update panning icon configuration.
X */
+ window->pan.clip_geometry=window->image.clip_geometry;
X XBestIconSize(display,&window->pan,displayed_image);
X window_changes.width=window->pan.width;
X window_changes.height=window->pan.height;
***************
*** 3435,3440 ****
--- 3443,3449 ----
X /*
X Update icon configuration.
X */
+ window->icon.clip_geometry=window->image.clip_geometry;
X XBestIconSize(display,&window->icon,displayed_image);
X window_changes.width=window->icon.width;
X window_changes.height=window->icon.height;
***************
*** 4913,4919 ****
X /*
X Display usage profile if there are no command line arguments.
X */
! application_name=(*argv);
X if (argc < 2)
X Usage(True);
X /*
--- 4922,4928 ----
X /*
X Display usage profile if there are no command line arguments.
X */
! client_name=(*argv);
X if (argc < 2)
X Usage(True);
X /*
***************
*** 4967,4973 ****
X Initialize resource database.
X */
X XrmInitialize();
! XGetDefault(display,application_name,"dummy");
X resource_database=XrmGetDatabase(display);
X resource_value=XResourceManagerString(display);
X if (resource_value == (char *) NULL)
--- 4976,4982 ----
X Initialize resource database.
X */
X XrmInitialize();
! XGetDefault(display,client_name,"dummy");
X resource_database=XrmGetDatabase(display);
X resource_value=XResourceManagerString(display);
X if (resource_value == (char *) NULL)
***************
*** 4977,5022 ****
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,application_name,&resource_info);
! clip_geometry=XGetResource(resource_database,application_name,"clipGeometry",
! "ClipGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"compression",
! (char *) NULL,"RunlengthEncoded");
X if (Latin1Compare("qencoded",resource_value) == 0)
X compression=QEncodedCompression;
X else
X compression=RunlengthEncodedCompression;
! resource_value=XGetResource(resource_database,application_name,"enhance",
! (char *) NULL,"False");
X enhance=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"gamma",
! (char *) NULL,"0.0");
X gamma=atof(resource_value);
! resource_value=XGetResource(resource_database,application_name,"inverse",
! (char *) NULL,"False");
X inverse=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"noise",
! (char *) NULL,"False");
X noise=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"normalize",
! (char *) NULL,"False");
X normalize=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"reflect",
! (char *) NULL,"False");
X reflect=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,application_name,"rotate",
! (char *) NULL,"0");
X degrees=atoi(resource_value);
! scale_geometry=XGetResource(resource_database,application_name,
! "scaleGeometry","ScaleGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,application_name,"scene",
! (char *) NULL,"0");
X scene=atoi(resource_value);
! resource_value=XGetResource(resource_database,application_name,"verbose",
! (char *) NULL,"False");
X verbose=IsTrue(resource_value);
! window_id=XGetResource(resource_database,application_name,"windowId",
! "WindowId",(char *) NULL);
X /*
X Parse command line.
X */
--- 4986,5023 ----
X /*
X Get user defaults from X resource database.
X */
! XGetResourceInfo(resource_database,client_name,&resource_info);
! clip_geometry=
! XGetResource(resource_database,client_name,"clipGeometry",(char *) NULL);
! resource_value=XGetResource(resource_database,client_name,"compression",
! "RunlengthEncoded");
X if (Latin1Compare("qencoded",resource_value) == 0)
X compression=QEncodedCompression;
X else
X compression=RunlengthEncodedCompression;
! resource_value=XGetResource(resource_database,client_name,"enhance","False");
X enhance=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"gamma","0.0");
X gamma=atof(resource_value);
! resource_value=XGetResource(resource_database,client_name,"inverse","False");
X inverse=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"noise","False");
X noise=IsTrue(resource_value);
! resource_value=
! XGetResource(resource_database,client_name,"normalize","False");
X normalize=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"reflect","False");
X reflect=IsTrue(resource_value);
! resource_value=XGetResource(resource_database,client_name,"rotate","0");
X degrees=atoi(resource_value);
! scale_geometry=
! XGetResource(resource_database,client_name,"scaleGeometry",(char *) NULL);
SHAR_EOF
true || echo 'restore of fix-01 failed'
fi
echo 'End of ImageMagick/patch01 part 1'
echo 'File fix-01 is continued in part 2'
echo 2 > _shar_seq_.tmp
exit 0
--
cristy@dupont.com
exit 0 # Just in case...