diff options
author | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:24 +0000 |
---|---|---|
committer | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:24 +0000 |
commit | aafaabc4a0bfab6544e085ee504ad69de4a5ddb1 (patch) | |
tree | df739516a5dca20567b9e3956ef8c64b0e3787b4 /CHANGES | |
download | xorg-lib-libXpm-aafaabc4a0bfab6544e085ee504ad69de4a5ddb1.tar.gz |
Initial revisionXORG-STABLE
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 957 |
1 files changed, 957 insertions, 0 deletions
@@ -0,0 +1,957 @@ +/* + * 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. + |