958 lines
37 KiB
Plaintext
958 lines
37 KiB
Plaintext
/*
|
|
* Copyright (C) 1989-95 GROUPE BULL
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to
|
|
* deal in the Software without restriction, including without limitation the
|
|
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
* sell copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* Except as contained in this notice, the name of GROUPE BULL shall not be
|
|
* used in advertising or otherwise to promote the sale, use or other dealings
|
|
* in this Software without prior written authorization from GROUPE BULL.
|
|
*/
|
|
|
|
/**************************************************************************\
|
|
* *
|
|
* HISTORY of user-visible changes *
|
|
* *
|
|
\**************************************************************************/
|
|
|
|
3.4k (98/03/18)
|
|
|
|
ENHANCEMENTS:
|
|
- A new program called cxpm is provided to check on XPM files and help
|
|
figuring out where the file might be invalid.
|
|
- The FAQ and README are now in HTML.
|
|
|
|
BUGS CORRECTED:
|
|
- A bug in writing pixmaps out on an 32 bit depth visual and MSBFirst
|
|
machine.
|
|
- patch from Uwe Langenkamp <Uwe.Langenkamp@t-online.de>
|
|
- A severe bug in parsing the pixels section when an unknown character
|
|
is encountered.
|
|
|
|
3.4j (96/12/31)
|
|
|
|
ENHANCEMENTS:
|
|
- The XPM library can now be built under Amiga DOS. This entirely comes
|
|
from: Lorens Younes <d93-hyo@nada.kth.se>
|
|
See the README.AMIGA file for details.
|
|
- Changes for MSW: big performance improvement in ParseAndPutPixels(),
|
|
fixed creation of the mask in SetColor()
|
|
- patch from Jan Wielemaker <jan@swi.psy.uva.nl>
|
|
- makefiles are provided for VMS
|
|
- given by Martin P.J. Zinser m.zinser@gsi.de
|
|
- Imakefiles reworked to get smoother builds and fixes from:
|
|
- Paul DuBois dubois@primate.wisc.edu
|
|
- Larry Schwimmer schwim@cyclone.stanford.edu
|
|
- thanks to some code rearrangement the library is smaller (the size
|
|
reduction goes from 4 to 7% depending on the system)
|
|
|
|
BUGS CORRECTED:
|
|
- A severe bug (introduced in 3.4i as part of the sprintf
|
|
optimization) in code writing XPM extensions to a buffer
|
|
XpmCreateBufferFromImage/Pixmap.
|
|
- The XpmAttributes definition in xpm.h was declaring nalloc_colors to
|
|
be Bool, it's an int.
|
|
|
|
3.4i (96/09/13)
|
|
|
|
NEW FEATURES:
|
|
- The XPM library now allows the application to pass its own color
|
|
allocation/free functions. For this matter the following was done:
|
|
The XpmAttributes structure has three new fields alloc_color,
|
|
free_color, and color_closure. The following new valuemasks were
|
|
added XpmAllocColorFunc, XpmFreeColorsFunc, XpmColorClosure. And
|
|
two new types were defined XpmAllocColorFunc and XpmFreeColorsFunc.
|
|
See documentation for details.
|
|
|
|
ENHANCEMENTS:
|
|
- Windows NT support. It should compile and run fine based on the X
|
|
Consortium X11R6 distribution.
|
|
- The README file contains information to compile on Solaris with gcc.
|
|
- Part of the code has been optimized by using the value returned by
|
|
sprintf instead of calling strlen. Add the flag -DVOID_SPRINTF
|
|
if on your system sprintf returns void.
|
|
- patch from Thomas Ott thommy@rz.fh-augsburg.de
|
|
|
|
BUGS CORRECTED:
|
|
- XpmFree is now a real function (simply calling free by default).
|
|
|
|
CHANGES TO THE DOC:
|
|
- The documentation describes the new XpmAttributes fields and their
|
|
use.
|
|
|
|
3.4h (96/02/01)
|
|
|
|
NEW FEATURES:
|
|
- The XpmAttributes has a new member called 'alloc_close_colors' which
|
|
lets the caller specify whether close colors should be allocated
|
|
using XAllocColor or not. This is especially useful when one uses a
|
|
private colormap full of read/write cells.
|
|
The xpm.h header file define a new bitmap flag called
|
|
XpmAllocCloseColors to use along with this new slot.
|
|
- Dale Pease peased@bigbird.cso.gtegsc.com
|
|
- The XpmAttributes has a new member called 'bitmap_format' which lets
|
|
the caller specify the format of 1 bit depth images (XYBitmap or
|
|
ZPixmap). The xpm.h header file define a new bitmap flag called
|
|
XpmBitmapFormat to use along with this new field.
|
|
|
|
ENHANCEMENTS:
|
|
- XpmReadFileTo[Image/Pixmap], XpmCreate[Image/Pixmap]FromData,
|
|
XpmCreateImageFromDataFromBuffer functions do no longer use a
|
|
temporary XpmImage object, which reduces a lot the amount of memory
|
|
used. On the other hand it can take a little more time, but given the
|
|
following figures (based on sxpm) it is a real good trade-off.
|
|
|
|
Reading a 22x22 pixmap with 5 colors no time change is detected
|
|
using time:
|
|
real 0.3
|
|
user 0.1
|
|
sys 0.1
|
|
|
|
Reading a 1279x1023 pixmap with 14 colors (quite extreme case for
|
|
XPM!) the time goes from:
|
|
real 1.9
|
|
user 0.8
|
|
sys 0.8
|
|
|
|
to:
|
|
real 2.2
|
|
user 1.8
|
|
sys 0.3
|
|
|
|
Reading the 22x22 pixmap with 5 colors the memory usage (under
|
|
purify) goes from:
|
|
255256 code
|
|
55496 data/bss
|
|
163848 heap (peak use)
|
|
4248 stack
|
|
to:
|
|
271240 code
|
|
55472 data/bss
|
|
159752 heap (peak use)
|
|
4224 stack
|
|
|
|
And reading the 1279x1023 pixmap with 14 colors it goes from:
|
|
255256 code
|
|
55496 data/bss
|
|
6705160 heap (peak use)
|
|
4280 stack
|
|
to:
|
|
271240 code
|
|
55472 data/bss
|
|
1732616 heap (peak use)
|
|
4264 stack
|
|
|
|
This clearly shows that while for small pixmaps there is no real
|
|
difference on both sides, for large pixmaps this makes a huge
|
|
difference about the amount of memory used and it is not much
|
|
slower.
|
|
|
|
Note that you can still get the old behavior using both
|
|
XpmReadFileToXpmImage and XpmCreate[Image/Pixmap]FromXpmImage instead
|
|
of XpmReadFileTo[Image/Pixmap]. Once more XPM gives you the choice!
|
|
|
|
BUGS CORRECTED:
|
|
- when defined locally the global symbols strcasecmp and strdup are
|
|
now called xpmstrcasecmp and xpmstrdup to avoid any possible
|
|
conflict.
|
|
- VMS has a bogus file system which requires a work around in
|
|
XpmReadFileToBuffer.
|
|
- patch from Bob.Deen@jpl.nasa.gov
|
|
- the type of the exactColors attribute has been changed from unsigned
|
|
int to Bool.
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation describes the new XpmAttributes fields
|
|
alloc_close_colors and bitmap_format.
|
|
|
|
3.4g (95/10/08)
|
|
|
|
ENHANCEMENTS:
|
|
- The XpmAttributes structure has now two new slots: alloc_pixels and
|
|
nalloc_pixels in order to provide an easy way to free allocated
|
|
colors. The new bitmask XpmReturnAllocPixels should be used to
|
|
request this data through the valuemask. Unless you really know why,
|
|
you should use this instead of XpmReturnPixels, pixels, and npixels.
|
|
- the XPM1 format parsing has been improved.
|
|
- patch from Chuck Thompson <cthomp@cs.uiuc.edu>
|
|
- compilers defining _STDC_ to something different from 1 are now
|
|
considered as ANSI compilers.
|
|
- the README file provides now more info on how to build XPM depending
|
|
on the system.
|
|
|
|
BUGS CORRECTED:
|
|
- a bug introduced in 3.4f in the XPM1 format parsing function.
|
|
- fix from Chuck Thompson <cthomp@cs.uiuc.edu>
|
|
- the hashtable was not free when the color parsing failed.
|
|
- patch from ackley@cs.unm.edu (David Ackley)
|
|
- the close color mechanism wasn't used if one of the closeness
|
|
parameter was null. Now only one needs to be different from 0.
|
|
Lorens Younes d93-hyo@nada.kth.se
|
|
- parsing of long comments failed with a segmentation fault.
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation describes the new XpmAttributes fields
|
|
alloc_pixels and nalloc_pixels and how they are used.
|
|
|
|
3.4f (95/05/29)
|
|
|
|
ENHANCEMENTS:
|
|
- Defines IMAKE_DEFINES in the top Imakefile so one can easily avoid
|
|
building the shared library.
|
|
- Add some information about the installation process in the README.
|
|
- filenames are surrounded with quotes when calling gzip or compress in
|
|
order to allow spaces within filenames.
|
|
- William Parn <parn@fgm.com>
|
|
- the compilation and the shared library building should be smoother
|
|
on Alpha OSF/1.
|
|
- patch from Dale Moore <Dale.Moore@CS.cmu.edu>
|
|
|
|
BUGS CORRECTED:
|
|
- a segmentation fault occurring in some weird case.
|
|
|
|
3.4e (95/03/01)
|
|
|
|
ENHANCEMENTS:
|
|
- The top Imakefile passes CDEBUGFLAGS and DEFINES to subdirs. Thus
|
|
only this Imakefile should need to be edited by users.
|
|
- FAQ includes the answer to the question "How can I get a non
|
|
rectangular icon using XPM ?"
|
|
- VMS support updated
|
|
- patch from Martin P.J. Zinser m.zinser@gsi.de
|
|
|
|
BUGS CORRECTED:
|
|
- XpmCreateImageFromXpmImage() called from XpmReadFileToPixmap() could
|
|
lead to a segmentation fault since free was called on a memory block
|
|
size variable instead of the block itself. Note: this bug has been
|
|
introduced in 3.4d.
|
|
|
|
3.4d (95/01/31)
|
|
|
|
ENHANCEMENTS:
|
|
- sxpm now supports a -version option command.
|
|
|
|
BUGS CORRECTED:
|
|
- the list of pixels returned in XpmAttributes was wrong when two
|
|
colors were defined as None in the read XPM
|
|
- Lionel.Mallet@sophia.inria.fr
|
|
- the parser was skipping whitespace reading extensions strings. This
|
|
has been fixed so extensions lines are now returned exactly as they
|
|
are.
|
|
- some compilation control added for the dec alpha with X11R5 (LONG64)
|
|
- patch from Fredrik Lundh <Fredrik_Lundh@ivab.se>
|
|
- when writing an XPM file, '-' characters are replaced with '_'
|
|
characters in the array name, in order to get a valid C syntax name.
|
|
- XYPixmap format images were not correctly handled.
|
|
- XPM1 file with names using multiple '_' characters are now handled
|
|
correctly.
|
|
- todd@erda.rl.af.mil (Todd Gleason)
|
|
|
|
3.4c (94/06/06)
|
|
|
|
Yes, this is kind of quick. But this is because no code has been modified,
|
|
this is just a new packaging to make the whole stuff more suitable to the
|
|
X development team's requests for inclusion in the R6 contrib.
|
|
|
|
ENHANCEMENTS:
|
|
- Several filenames were too long to fit without any conflict on DOS
|
|
and CD-ROM filesystems. They have been renamed.
|
|
- Imakefiles use XCOMM for comments instead of the # character.
|
|
- the Postscript documentation file doc/xpm.ps is now distributed as
|
|
doc/xpm.PS.gz and allows browsing with tools such as ghostview.
|
|
- Besides, parts of lib/misc.c have been moved to several new files,
|
|
and some functions of data.c have been moved to other files in
|
|
order to get a better link profile.
|
|
- I've also added a FAQ hoping this will prevent people from
|
|
continuously filling my mailbox with the same questions.
|
|
- sxpm.c includes <X11/xpm.h> instead of "xpm.h" and BUILDINCTOP is
|
|
used in Makefiles as expected.
|
|
- Everything can be done simply using "xmkmf -a" and "make".
|
|
|
|
3.4b (94/05/24)
|
|
|
|
ENHANCEMENTS:
|
|
- XPM can now be built under MS Windows. Yes, this is possible and this
|
|
entirely comes from:
|
|
- Hermann Dunkel <hedu@cul-ipn.uni-kiel.de>
|
|
See the README.MSW file for details.
|
|
|
|
- building the shared library now depends on the SharedLibXpm variable
|
|
and no longer on the SharedLibX variable which is private to the X
|
|
Window System project.
|
|
- patch from Stephen Gildea <gildea@x.org>
|
|
Other variables can now be set for the various locations needed.
|
|
|
|
- lib/parse.c does no longer use a 256x256 array in the stack but
|
|
malloc it instead.
|
|
|
|
- The Copyright notice which has been re-written from the X11R6's one
|
|
should be clearer and is now present in every file.
|
|
|
|
BUGS CORRECTED:
|
|
- lib/xpmP.h does no longer define a Boolean type which conflicts with
|
|
the Intrinsic definition. Instead the type Bool defined in Xlib is
|
|
used.
|
|
- neumann@watson.ibm.com (Gustaf Neumann)
|
|
|
|
3.4a (94/03/29)
|
|
|
|
BUGS CORRECTED:
|
|
- passing NULL as shapemask_return to XpmReadFileToPixmap and similar
|
|
functions was leading to a bus error.
|
|
- Dean Luick <dean@falcon.natinst.com>
|
|
|
|
3.4 (94/03/14)
|
|
|
|
IMPORTANT NOTE:
|
|
This version is not compatible with 3.3. Fortunately most people should
|
|
only need to recompile.
|
|
I apology for this but CDE/Motif have put heavy pressure to go that
|
|
way. The point is that I designed and released Xpm 3.3 in order to let
|
|
OSF include a clean version of Xpm in Motif 2.0. This new version was
|
|
not fully compatible with 3.2 but I thought it didn't matter since this
|
|
was going to be the first version used within Motif. Unfortunately CDE
|
|
was already using xpm-3.2 internally and requires both source and
|
|
binary backward compatibility. By the way I must say they didn't drop
|
|
us a single line to let us know they were using it and thus were
|
|
expecting stability. All this could have been avoided...
|
|
|
|
However, since I had to go for a not compatible version I took this as
|
|
an opportunity to modify the lower level API, which was new in 3.3 and
|
|
which was somewhat clumsy, in order to provide yet a better API.
|
|
|
|
The library has been modified to have both source and binary backward
|
|
compatibility with xpm-3.2. This implies it is not either source or
|
|
binary compatible with 3.3. The fields related to the 3.2 XpmInfos
|
|
mechanism have been put back into the XpmAttributes structure. The new
|
|
3.3 XpmInfos struct has been renamed as XpmInfo to avoid conflict with
|
|
the old 3.2 flag which is back too. All the semantic related to the
|
|
XpmAttributes infos fields is back as well.
|
|
|
|
So this new version provides a high level API which is fully
|
|
compatible with 3.2 and still provides the 3.3 lower level API
|
|
(XpmImage) with the XpmInfos struct renamed as XpmInfo. This leads to
|
|
some redundancy but this was the best I could do to satisfy both
|
|
CDE/Motif people who needed the backward compatibility and myself (who
|
|
always tries to provide you with the best ;-).
|
|
|
|
Tests have been successfully performed with pixmap-2.1, pixmap-2.4, and
|
|
sxpm.
|
|
|
|
ENHANCEMENTS:
|
|
- The colorTable member of the XpmAttributes structure is now an
|
|
(XpmColor*) in order to be compatible with an XpmImage colorTable.
|
|
However in order to be backward compatible this field is cast to
|
|
(XpmColor **), which is equivalent to (char ***), when it is used
|
|
with the old flags XpmInfos and XpmReturnInfos. To handle the new
|
|
type the new flags XpmColorTable and XpmReturnColorTable have been
|
|
defined.
|
|
- The XpmInfo struct has been extended to avoid having to deal with an
|
|
XpmAttributes at the lower level. The idea is that all the data
|
|
stored in an Xpm file can be retrieve through both an XpmImage and
|
|
an XpmInfo struct. See the documentation for details.
|
|
- XpmUndefPixel is defined and exported by xpm.h in order to let
|
|
clients providing their own colorTable when writing out an Xpm file.
|
|
See the documentation for details.
|
|
- in sxpm/sxpm.c, set attribute XtNinput to True on toplevel widget.
|
|
Windows that don't "take" input, never get focus, as mandated by
|
|
the ICCM.
|
|
patch from Henrique Martins <martins@hplhasm.hpl.hp.com>
|
|
- lib/Imakefile modified to build the shared library under IRIX 5.
|
|
patch from simon@lia.di.epfl.ch (Simon Leinen)
|
|
|
|
NEW FEATURES:
|
|
- a new function and a new define should help client figuring out with
|
|
which Xpm library version they are working. These are
|
|
XpmIncludeVersion and XpmLibraryVersion().
|
|
|
|
3.3 (93/12/20)
|
|
|
|
NEW FEATURES:
|
|
- XPM1 files are now supported.
|
|
- a new function is provided to get an error string related to the
|
|
returned error code.
|
|
- suggested by Detlef Schmier <detlef@mfr.dec.com>
|
|
|
|
ENHANCEMENTS:
|
|
- gzip and gunzip are called with the -q option (quiet)
|
|
- patch from Chris P. Ross <cross@eng.umd.edu>
|
|
- the parser is again more flexible about the way the strings are
|
|
distributed on lines. Actually a single line XPM file can be read.
|
|
- the documentation should be clearer about shapemask generation and
|
|
XpmAttributes valuemask.
|
|
|
|
BUGS CORRECTED:
|
|
- reading some binary file was leading to a bus error.
|
|
- patch from Detlef Schmier <detlef@mfr.dec.com>
|
|
- the ? character is no longer used when writing an XPM file in order
|
|
to avoid possible ANSI trigraphs.
|
|
|
|
3.3alpha (93/08/13)
|
|
|
|
NEW FEATURES:
|
|
- a new level interface is provided to allow applications to do either
|
|
icon editing or data caching.
|
|
The XpmAttributes has been changed but most applications will just
|
|
need to be recompiled.
|
|
- new structures are provided to deal with the new lower level:
|
|
XpmImage, XpmColor, XpmInfos.
|
|
|
|
- a separate distribution called xpm-contrib is available. This
|
|
includes the converters which used to be part of this distribution
|
|
plus:
|
|
two new applications:
|
|
* nexpm to draw a pixmap in *any* existing window from
|
|
Ralph Betza <gnohmon@ssiny.com>
|
|
* xpmview to display a list of Xpm files from
|
|
Jean Michel Leon <leon@sophia.inria.fr>
|
|
|
|
a hacky string to pixmap converter, provided by
|
|
Robert H. Forsman Jr. <thoth@manatee.cis.ufl.edu>
|
|
|
|
The Xpm editor called pixmap will also be part of this contrib.
|
|
This does not mean it is the best pixmap editor one can find
|
|
but it is the only one that I know of which tries to handle
|
|
all the features of this format.
|
|
|
|
ENHANCEMENTS:
|
|
- the code to build XImage data has been optimized by
|
|
jules@x.co.uk (Julian Gosnell)
|
|
the old code is still available when compiling with the
|
|
-DWITHOUT_SPEEDUPS flag.
|
|
|
|
- closecolor code was not re-entrant
|
|
- dbl@visual.com (David B. Lewis)
|
|
- fix gzip filename (*.gz and no longer *.z).
|
|
- Jason Patterson <jasonp@fitmail.fit.qut.edu.au>
|
|
- sxpm has 2 new options:
|
|
-nom to do not display the mask if there is one
|
|
-cp <color> <pixel> to override a color value with a given
|
|
pixel, i.e. sxpm plaid.xpm -cp red 4
|
|
|
|
also the '-s' adn '-p' options have been renamed to '-sc' and '-sp'.
|
|
|
|
- xpm.h defines XpmFormat, XpmVersion, and XpmRevision numbers.
|
|
|
|
BUGS CORRECTED:
|
|
- closecolor minor fix
|
|
- Jason Patterson <jasonp@fitmail.fit.qut.edu.au>
|
|
|
|
3.2g (93/04/26)
|
|
|
|
ENHANCEMENTS:
|
|
- much faster close colors
|
|
- piping from/to compressed files now handles GNU's gzip (.z) format
|
|
- added XpmColorKey attribute - ability to specify which visual's
|
|
colors to use (ie: now it's possible to read in a pixmap in a
|
|
color visual, but use the colors specified for monochrome).
|
|
- added -mono, -grey4, -grey and -color options to sxpm to demonstrate
|
|
the XpmColorKey attribute.
|
|
- Jason Patterson <jasonp@fitmail.qut.edu.au>
|
|
|
|
BUGS CORRECTED:
|
|
- fixed bug where redefining "None" as a pixel stopped mask generation
|
|
- minor SVR4 defines for <string.h>
|
|
- fixed annoying closecolor bug related to read/write color cells
|
|
- fixed minor bug in color value -> pixel overloading
|
|
- manual updated to include new red/green/blue closeness attributes
|
|
- Jason Patterson <jasonp@fitmail.qut.edu.au>
|
|
|
|
- the top Imakefile was missing the depend target
|
|
- sxpm/Imakefile fixed so that -L../lib is set before the standard
|
|
library location.
|
|
- Vivek Khera <khera@cs.duke.edu>
|
|
|
|
- lib/xpmP.h now defines bcopy as memcpy for VMS (required by recent
|
|
versions of VMS)
|
|
- J. Daniel Smith <dsmith@ann-arbor.applicon.slb.com>
|
|
|
|
- the lib/Imakefile didn't work with X11R4.
|
|
|
|
|
|
3.2f (93/03/17)
|
|
|
|
NEW FEATURES:
|
|
- the library provides four new functions to deal with Xpm files
|
|
loaded in memory as single character strings buffers:
|
|
|
|
XpmCreateImageFromBuffer
|
|
XpmCreatePixmapFromBuffer
|
|
XpmCreateBufferFromImage
|
|
XpmCreateBufferFromPixmap
|
|
|
|
- in addition, as a convenience, two functions are provided to copy a
|
|
file in a buffer and to write a file from a buffer:
|
|
|
|
XpmReadFileToBuffer
|
|
XpmWriteFileFromBuffer
|
|
|
|
ENHANCEMENTS:
|
|
- Files are now dispatched in the following sub-directories:
|
|
lib, sxpm, and doc.
|
|
- Imakefiles will let you build a shared library as well as the static
|
|
one (with either X11R4 or X11R5).
|
|
- The documentation has been ported from LaTeX to FrameMaker and is
|
|
now included in the distribution in its PostScript form (doc/xpm.ps).
|
|
Source files are available on request.
|
|
Also the documentation has been reorganized and includes a table of
|
|
contents and an index of the functions (the number of functions
|
|
increasing this became a requisite).
|
|
|
|
BUGS CORRECTED:
|
|
- Many warnings have been fixed - patch from Daniel Dardailler
|
|
daniel@osf.org
|
|
|
|
3.2e (93/02/05)
|
|
|
|
ENHANCEMENTS:
|
|
- use XpmMalloc, XpmRealloc, XpmCalloc, and XpmFree which are defines
|
|
in xpmP.h. This should help people wanting to use their own functions.
|
|
|
|
BUGS CORRECTED:
|
|
- Intrinsic.h is no longer included.
|
|
- bzero is defined as memset on SYSV and SVR4.
|
|
- some memory initialization bug concerning XpmAttributes.
|
|
|
|
3.2d (93/01/27)
|
|
|
|
ENHANCEMENTS:
|
|
- compile on Solaris 2.0
|
|
- patch from Clint Jeffery <cjeffery@cs.arizona.edu>
|
|
|
|
BUGS CORRECTED:
|
|
- shape masks are now set correctly for LSBFirst (Decs).
|
|
- pixmaps are now set correctly for 2 bit displays (Nexts).
|
|
- patch from Josef Leherbauer <joe@takeFive.co.at>
|
|
- isspace was called on getc which fails when EOF is returned.
|
|
- Marelli Paolo <marelli@colos3.usr.dsi.unimi.it>
|
|
|
|
3.2c (92/12/29)
|
|
|
|
ENHANCEMENTS:
|
|
- parsing optimized for single and double characters color
|
|
- patch originally from Martin Brunecky
|
|
marbru@build1.auto-trol.com
|
|
|
|
BUGS CORRECTED:
|
|
- XpmFreeExtensions was calling free on some argument without checking
|
|
it was not NULL.
|
|
- strdup was not correctly defined for systems which do not provide
|
|
it. - Hans-Peter Lichtin <lich@zellweger.ch>
|
|
- some bug in XpmCrDataFI.c
|
|
- Sven Delmas garfield@avalanche.cs.tu-berlin.de
|
|
|
|
NOTE:
|
|
- there is still a bug with the creation of the clipmask on display of
|
|
depth 2 but I can't find a fix because unfortunately I don't have such
|
|
a rendering system and nobody gets the time to investigate for me.
|
|
|
|
3.2b (92/10/19)
|
|
|
|
ENHANCEMENTS:
|
|
- Create XpmReadFileToData and XpmWriteFileFromData
|
|
- Dan Greening <dgreen@sti.com>
|
|
- added "close colors" support and ability to redefine color values
|
|
as pixels at load time, as well as color names
|
|
- Jason Patterson <jasonp@fitmail.qut.edu.au>
|
|
- errors while parsing or allocating colors now revert to other
|
|
visual defaults, creating pixmap/image as expected, and returning
|
|
XpmSuccess. The old behavior of XpmColorError being returned and no
|
|
pixmap/image being created can be retained by setting the
|
|
exactColors attribute.
|
|
- Jason Patterson <jasonp@fitmail.qut.edu.au>
|
|
|
|
BUGS CORRECTED:
|
|
- SVR4 defines for including <string.h> instead of <strings.h>
|
|
- Jason Patterson <jasonp@fitmail.qut.edu.au>
|
|
- attributes->extensions and attributes->nextensions fields were not
|
|
set correctly when no extensions present in file.
|
|
- Simon_Scott Cornish <cornish@ecr.mu.oz.au>
|
|
|
|
3.2a (92/08/17)
|
|
|
|
ENHANCEMENTS:
|
|
- use the mock lisp hashing function instead of the gnu emacs one,
|
|
it is faster in some cases and never slower (I've not found any case).
|
|
|
|
BUGS CORRECTED:
|
|
- function prototypes for ansi compilers.
|
|
- some memory initialization bugs (purify is just great for this).
|
|
- empty strings in extensions are now correctly handled.
|
|
|
|
3.2 (92/07/06)
|
|
|
|
NEW FEATURES:
|
|
- both format and functions handle extensions data. This allow people
|
|
to store additional data related to a pixmap. See documentation for
|
|
detail.
|
|
- sxpm supports the new option '-c' to use a private colormap. This is
|
|
useful when displaying pixmaps using a lot of colors.
|
|
- sxpm supports the new option '-v' (verbose) to get possible
|
|
extensions print out on standard error.
|
|
|
|
ENHANCEMENTS:
|
|
- most of the code has been reworked to be improved and thus almost
|
|
every function is faster. It takes less than 6 seconds of real time on
|
|
a sun4 to display, with sxpm, a 487x635 pixmap using 213 colors, while
|
|
it takes 32 seconds with the old library! It takes 18 seconds to
|
|
display a 1279x1023 screen dump using 14 colors while xwud takes 10
|
|
seconds.
|
|
Of course performance improvements are not always that great, they
|
|
depend on the size and number of colors but I'm sure everybody will
|
|
appreciate ;-)
|
|
I know how to improve it more but this will require changes in the
|
|
architecture so this is not for now. Some optimizations have been
|
|
contributed by gregor@kafka.saic.com (gregg hanna) and
|
|
jnc@csl.biosci.arizona.edu (John N. Calley).
|
|
- the Imakefile is modified to let you install sxpm - Rainer Klute
|
|
<klute@irb.informatik.uni-dortmund.de>
|
|
- xpmP.h declares popen for Sequent platforms - Clinton Jeffery
|
|
<cjeffery@cs.arizona.edu>
|
|
- XpmWriteFileFromImage/Pixmap rather than truncating the pixmap name
|
|
to the first dot changes dots to underscores to get a valid C syntax
|
|
name.
|
|
|
|
|
|
BUGS CORRECTED:
|
|
- there was a bug in the image creation function for some 24 bits
|
|
displays. It is fixed.
|
|
- allocated color pixels are now freed when an error occurs -
|
|
nusser@dec1.wu-wien.ac.at (Stefan Nusser)
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation describes the new XpmExtension structure and how
|
|
to use it with read and write functions.
|
|
|
|
3.1 (92/02/03)
|
|
|
|
ENHANCEMENTS:
|
|
- sxpm now have more standard options (mainly suggested by
|
|
Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>):
|
|
|
|
Usage: sxpm [options...]
|
|
Where options are:
|
|
|
|
[-d host:display] Display to connect to.
|
|
[-g geom] Geometry of window.
|
|
[-hints] Set ResizeInc for window.
|
|
[-icon filename] Set pixmap for iconWindow.
|
|
[-s symbol_name color_name] Overwrite color defaults.
|
|
[-p symbol_name pixel_value] Overwrite color defaults.
|
|
[-plaid] Read the included plaid pixmap.
|
|
[filename] Read from file 'filename', and from
|
|
standard input if 'filename' is '-'.
|
|
[-o filename] Write to file 'filename', and to standard
|
|
output if 'filename' is '-'.
|
|
[-nod] Don't display in window.
|
|
[-rgb filename] Search color names in the rgb text file
|
|
'filename'.
|
|
|
|
if no input is specified sxpm reads from standard input.
|
|
|
|
|
|
- Xpm functions and Ppm converters now deal with multiword colornames.
|
|
patches from Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>.
|
|
|
|
|
|
3.0 (91/10/03)
|
|
|
|
Functions name and defines have been modified again (sorry for that)
|
|
as follows:
|
|
|
|
XpmReadPixmapFile XpmReadFileToPixmap
|
|
XpmWritePixmapFile XpmWriteFileFromPixmap
|
|
|
|
XpmPixmapColorError XpmColorError
|
|
XpmPixmapSuccess XpmSuccess
|
|
XpmPixmapOpenFailed XpmOpenFailed
|
|
XpmPixmapFileInvalid XpmFileInvalid
|
|
XpmPixmapNoMemory XpmNoMemory
|
|
XpmPixmapColorFailed XpmColorFailed
|
|
|
|
To update code using Xpm you can use the included shell script called
|
|
rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0.
|
|
Old names still valid though.
|
|
|
|
NEW FEATURES:
|
|
- four new functions to work with images instead of pixmaps:
|
|
|
|
XpmReadFileToImage
|
|
XpmWriteFileFromImage
|
|
XpmCreateImageFromData
|
|
XpmCreateDataFromImage
|
|
|
|
ENHANCEMENTS:
|
|
Algorithms to create and scan images and pixmaps are based on the
|
|
MIT's R5 code, thus they are much cleaner than old ones and should
|
|
avoid any problem with any visual (yes, I trust MIT folks :-)
|
|
|
|
BUGS CORRECTED:
|
|
Imakefile use INCDIR instead of ROOTDIR.
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation presents the four new functions.
|
|
|
|
3.0c (91/09/18)
|
|
|
|
In answer to request of people functions, types and defines names have
|
|
been changed as follows:
|
|
|
|
XCreatePixmapFromData XpmCreatePixmapFromData
|
|
XCreateDataFromPixmap XpmCreateDataFromPixmap
|
|
XReadPixmapFile XpmReadPixmapFile
|
|
XWritePixmapFile XpmWritePixmapFile
|
|
XFreeXpmAttributes XpmFreeAttributes
|
|
|
|
PixmapColorError XpmPixmapColorError
|
|
PixmapSuccess XpmPixmapSuccess
|
|
PixmapOpenFailed XpmPixmapOpenFailed
|
|
PixmapFileInvalid XpmPixmapFileInvalid
|
|
PixmapNoMemory XpmPixmapNoMemory
|
|
PixmapColorFailed XpmPixmapColorFailed
|
|
|
|
ColorSymbol XpmColorSymbol
|
|
|
|
Generally speaking every public name begins with 'Xpm' and every
|
|
private one with 'xpm'. This should avoid any possible conflict.
|
|
|
|
Some files have also be renamed accordingly.
|
|
|
|
NEW FEATURES:
|
|
- support for VMS and two new options for sxpm: icon and hints (see
|
|
manual for details) Richard Hess <rhess%pleione%cimshop@uunet.UU.NET>
|
|
- DEFINES in Imakefile and Makefile.noXtree allows you to set the
|
|
following:
|
|
|
|
ZPIPE for un/compressing piped feature (default is on)
|
|
NEED_STRCASECMP for system which doesn't provide one (default
|
|
is off)
|
|
|
|
- xpmtoppm.c has is own strstr function which is used if NEED_STRSTR
|
|
is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy).
|
|
|
|
BUGS CORRECTED:
|
|
- many bugs have been fixed, especially for ansi compilers -
|
|
Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and
|
|
Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET)
|
|
- parser is again a little more improved
|
|
|
|
3.0b (91/09/12)
|
|
|
|
This is a complete new version with a new API and where files and
|
|
structures have been renamed. So this should be taken as a new
|
|
starting release.
|
|
This release should be quickly followed by the 3.0 because I'm planning
|
|
to send it for X11R5 contrib which ends October 5th.
|
|
|
|
NEW FEATURES:
|
|
- support for transparent color.
|
|
- support for hotspot.
|
|
- a new function: XCreateDataFromPixmap to create an XPM data from a
|
|
pixmap in order to be able to create a new pixmap from this data using
|
|
the XCreatePixmapFromData function later on.
|
|
- a new structure: XpmAttributes which replace the XpmInfo structure
|
|
and which leads to a much simpler API with less arguments.
|
|
- arguments such as visual, colormap and depth are optional, default
|
|
values are taken if omitted.
|
|
- parsing and allocating color failures don't simply break anymore. If
|
|
another default color can be found it is used and a PixmapColorError
|
|
is returned. In case no color can be found then it breaks and returns
|
|
PixmapColorFailed.
|
|
- for this reason the ErrorStatus codes are redefined as follows:
|
|
|
|
null if full success
|
|
positive if partial success
|
|
negative if failure
|
|
|
|
with:
|
|
#define PixmapColorError 1
|
|
#define PixmapSuccess 0
|
|
#define PixmapOpenFailed -1
|
|
#define PixmapFileInvalid -2
|
|
#define PixmapNoMemory -3
|
|
#define PixmapColorFailed -4
|
|
|
|
- sxpm prints out a warning when a requested color could not be parsed
|
|
or alloc'ed, and an error when none has been found.
|
|
- sxpm handles pixmap with transparent color. For this purpose the
|
|
plaid_mask.xpm is added to the distribution.
|
|
|
|
BUGS CORRECTED:
|
|
- I've again improved the memory management.
|
|
- the parser is also improved.
|
|
- when writing a pixmap to a file the variable name could be
|
|
"plaid.xpm" which is not valid in C. Now the extension name is cut off
|
|
to give "plaid" as variable name.
|
|
- reading multiple words colornames such as "peach puff" where leading
|
|
to non readable Xpm files. They are now skipped to have only single
|
|
word colorname. Lionel Mallet (mallet@ipvpel.unipv.it).
|
|
- parser was triggered by the "/" character inside string.
|
|
Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected.
|
|
- sxpm maps the window only if the option "-nod" is not selected.
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation presents the new API and features.
|
|
|
|
3.0a (91/04/10)
|
|
|
|
This is an alpha version because it supports the new version of XPM,
|
|
but the library interface is still the same. Indeed it will change in
|
|
future release to get rid of obsolete stuff such as the type argument
|
|
of the XWritePixmapFile function.
|
|
|
|
******************************* WARNING *********************************
|
|
The format is not anymore XPM2, it is XPM version 3 which is XPM2
|
|
limited to the C syntax with the key word "XPM" in place of "XPM2 C".
|
|
The interface library has not changed yet but the type argument of
|
|
XWritePixmapFile and the type member of XpmInfo are not used anymore.
|
|
Meanwhile the library which is now called libXpm.a is backward
|
|
compatible as XPM2 files can be read. But the XWritePixmapFile
|
|
function only writes out XPM version 3 files.
|
|
*************************************************************************
|
|
|
|
NEW FEATURES:
|
|
- the library doesn't use global variables anymore, thus it should be
|
|
able to share it.
|
|
- sxpm has been rewritten on top of Xt, it can be used to convert
|
|
files from XPM2 to XPM version 3.
|
|
- xpm1to2c.perl has been upgraded to the new XPM version and renamed
|
|
as xpm1to3.perl
|
|
- ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed
|
|
ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1
|
|
of the pbmplus package have been upgraded too. xpmtoppm can thus
|
|
convert XPM version 1 and 3 to a portable pixmap. These files should
|
|
replace the original ones which are part of the pbmplus package. See
|
|
the ppm.README file for more details.
|
|
- the library contains RCS variables which allows you to get revision
|
|
numbers with ident (which is part of the RCS package). The Id number
|
|
is an internal rcs number for my eyes only. The official one is found
|
|
in Version.
|
|
|
|
BUGS CORRECTED:
|
|
- the memory management has been much improved in order to avoid
|
|
memory leaks.
|
|
- the XImage building algorithm has been changed to support correctly
|
|
different visual depths. There is special code to handle depths 1, 4,
|
|
6, 8, 24, and 32 to build the image and send it in one whack, and
|
|
other depths are supported by building the image with XPutPixel which
|
|
is slow but sure.
|
|
- similar algorithms are used to read pixmaps and write them out.
|
|
|
|
CHANGES TO THE DOC:
|
|
- the documentation presents the new XPM format.
|
|
|
|
|
|
2.8 (90/12/19)
|
|
|
|
******************************* WARNING *********************************
|
|
Since the last release two structures have been modified and have now
|
|
bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED.
|
|
*************************************************************************
|
|
|
|
NEW FEATURES:
|
|
- the ColorSymbol struct contains the new member 'pixel' which allow
|
|
to override default colors by giving a pixel value (in such a case
|
|
symbol value must be set to NULL),
|
|
- the XpmInfo struct contains the new member 'rgb_fname' in which one
|
|
can specify an rgb text file name while writing a pixmap with the
|
|
XWritePixmapFile function (otherwise this member should be set to
|
|
NULL). This way colorname will be searched and written out if found
|
|
instead of the RGB value,
|
|
- Imakefile originally provided by stolcke@ICSI.Berkeley.EDU,
|
|
- the old Makefile is now distributed as Makefile.noXtree and presents
|
|
install targets,
|
|
- the demo application is renamed sxpm (Show XPM), creates a window of
|
|
the size of the pixmap if no geometry is specified, prints out
|
|
messages instead of status when an error occurs, handles the new
|
|
option -p for overriding colors by giving a pixel value (not really
|
|
useful but is just here to show this new feature), handles the new
|
|
option -rgb for specifying an rgb text file, and ends on
|
|
keypress as buttonpress,
|
|
- defines for SYSV have been provided by Paul Breslaw
|
|
<paul@mecazh.uucp>,
|
|
- the distribution includes a new directory called converters which
|
|
contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2
|
|
converter provided by Paul Breslaw who upgraded the original ppmtoxpm
|
|
written by Mark W. Snitily <mark@zok.uucp>.
|
|
|
|
CHANGES TO THE DOC:
|
|
- this file is created and will give old users a quick reference to
|
|
changes made from one release to the next one,
|
|
- documentation is changed to present the new ColorSymbol structure
|
|
and the way to override colors by giving a pixel value, and to present
|
|
the new XpmInfo structure and how to use it,
|
|
- a man page for sxpm is added to the distrib,
|
|
- the README file talks about sxpm and no more demo, and have
|
|
reference to the different converters.
|
|
|
|
2.7 (90/11/12)
|
|
|
|
NEW FEATURES:
|
|
- XReadPixmapFile reads from stdin if filename is NULL,
|
|
- XWritePixmapFile writes to stdin if filename is NULL,
|
|
- the demo application handles the new option -nod for no displaying
|
|
the pixmap in a window (useful when used as converter).
|
|
|
|
CHANGES TO THE DOC:
|
|
- documentation about the new feature.
|
|
|
|
2.6 (90/10/29)
|
|
|
|
NEW FEATURES:
|
|
- from nazgul@alphalpha.com (Kee Hinckley): changes to make the
|
|
library usable as C++ code, and on Apollo without any warning.
|
|
|
|
BUGS CORRECTED:
|
|
- from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was
|
|
declaring XWritePixmapFile as taking in arg a Pixmap pointer instead
|
|
of a Pixmap.
|
|
|
|
2.5 (90/10/17)
|
|
|
|
BUGS CORRECTED:
|
|
- XWritePixmapFile was not closing the file while ending normally.
|
|
|
|
2.4 (90/09/06)
|
|
|
|
NEW FEATURES:
|
|
- XReadPixmapFile reads from a piped uncompress if the given filename
|
|
ends by .Z or if filename.Z exists,
|
|
- XWritePixmapFile writes to a piped compress if the given filename
|
|
ends by .Z.
|
|
|
|
BUGS CORRECTED:
|
|
- demo now deals with window manager.
|
|
|
|
CHANGES TO THE DOC:
|
|
- documentation about compressed files management.
|
|
|
|
2.3 (90/08/30)
|
|
|
|
BUGS CORRECTED:
|
|
- handle monochrome display correctly,
|
|
- comments can be empty.
|
|
|
|
2.2 (90/08/27)
|
|
|
|
BUGS CORRECTED:
|
|
- when reading some invalid free was dumping core on some machine.
|
|
|
|
2.1 (90/08/24)
|
|
|
|
First distribution of XPM2.
|
|
|