source: trunk/third/xpm/CHANGES @ 15269

Revision 15269, 36.9 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15268, which included commits to RCS files with non-trunk default branches.
RevLine 
[15268]1/*
2 * Copyright (C) 1989-95 GROUPE BULL
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to
6 * deal in the Software without restriction, including without limitation the
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 * sell copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 *
21 * Except as contained in this notice, the name of GROUPE BULL shall not be
22 * used in advertising or otherwise to promote the sale, use or other dealings
23 * in this Software without prior written authorization from GROUPE BULL.
24 */
25
26/**************************************************************************\
27*                                                                          *
28*                       HISTORY of user-visible changes                    *
29*                                                                          *
30\**************************************************************************/
31
323.4k    (98/03/18)
33
34    ENHANCEMENTS:
35        - A new program called cxpm is provided to check on XPM files and help
36          figuring out where the file might be invalid.
37        - The FAQ and README are now in HTML.
38
39    BUGS CORRECTED:
40        - A bug in writing pixmaps out on an 32 bit depth visual and MSBFirst
41          machine.
42                - patch from Uwe Langenkamp <Uwe.Langenkamp@t-online.de>
43        - A severe bug in parsing the pixels section when an unknown character
44          is encountered.
45
463.4j    (96/12/31)
47
48    ENHANCEMENTS:
49        - The XPM library can now be built under Amiga DOS. This entirely comes
50          from: Lorens Younes <d93-hyo@nada.kth.se>
51          See the README.AMIGA file for details.
52        - Changes for MSW: big performance improvement in ParseAndPutPixels(),
53                fixed creation of the mask in SetColor()
54                - patch from Jan Wielemaker <jan@swi.psy.uva.nl>
55        - makefiles are provided for VMS
56                - given by Martin P.J. Zinser m.zinser@gsi.de 
57        - Imakefiles reworked to get smoother builds and fixes from:
58                - Paul DuBois dubois@primate.wisc.edu
59                - Larry Schwimmer schwim@cyclone.stanford.edu
60        - thanks to some code rearrangement the library is smaller (the size
61          reduction goes from 4 to 7% depending on the system)
62
63    BUGS CORRECTED:
64        - A severe bug (introduced in 3.4i as part of the sprintf
65          optimization) in code writing XPM extensions to a buffer
66          XpmCreateBufferFromImage/Pixmap.
67        - The XpmAttributes definition in xpm.h was declaring nalloc_colors to
68          be Bool, it's an int.
69
703.4i    (96/09/13)
71
72    NEW FEATURES:
73        - The XPM library now allows the application to pass its own color
74          allocation/free functions. For this matter the following was done:
75          The XpmAttributes structure has three new fields alloc_color,
76          free_color, and color_closure. The following new valuemasks were
77          added XpmAllocColorFunc, XpmFreeColorsFunc, XpmColorClosure. And
78          two new types were defined XpmAllocColorFunc and XpmFreeColorsFunc.
79          See documentation for details.
80
81    ENHANCEMENTS:
82        - Windows NT support. It should compile and run fine based on the X
83          Consortium X11R6 distribution.
84        - The README file contains information to compile on Solaris with gcc.
85        - Part of the code has been optimized by using the value returned by
86          sprintf instead of calling strlen. Add the flag -DVOID_SPRINTF
87          if on your system sprintf returns void.
88                  - patch from Thomas Ott thommy@rz.fh-augsburg.de
89
90    BUGS CORRECTED:
91        - XpmFree is now a real function (simply calling free by default).
92
93    CHANGES TO THE DOC:
94        - The documentation describes the new XpmAttributes fields and their
95          use.
96
973.4h    (96/02/01)
98
99    NEW FEATURES:
100        - The XpmAttributes has a new member called 'alloc_close_colors' which
101          lets the caller specify whether close colors should be allocated
102          using XAllocColor or not. This is especially useful when one uses a
103          private colormap full of read/write cells.
104          The xpm.h header file define a new bitmap flag called
105          XpmAllocCloseColors to use along with this new slot.
106                  - Dale Pease peased@bigbird.cso.gtegsc.com
107        - The XpmAttributes has a new member called 'bitmap_format' which lets
108          the caller specify the format of 1 bit depth images (XYBitmap or
109          ZPixmap). The xpm.h header file define a new bitmap flag called
110          XpmBitmapFormat to use along with this new field.
111
112    ENHANCEMENTS:
113        - XpmReadFileTo[Image/Pixmap], XpmCreate[Image/Pixmap]FromData,
114          XpmCreateImageFromDataFromBuffer functions do no longer use a
115          temporary XpmImage object, which reduces a lot the amount of memory
116          used. On the other hand it can take a little more time, but given the
117          following figures (based on sxpm) it is a real good trade-off.
118
119          Reading a 22x22 pixmap with 5 colors no time change is detected
120          using time:
121                  real        0.3
122                  user        0.1
123                  sys         0.1
124
125          Reading a 1279x1023 pixmap with 14 colors (quite extreme case for
126          XPM!) the time goes from:
127                  real        1.9
128                  user        0.8
129                  sys         0.8
130
131          to:
132                  real        2.2
133                  user        1.8
134                  sys         0.3
135
136          Reading the 22x22 pixmap with 5 colors the memory usage (under
137          purify) goes from:
138                  255256 code
139                   55496 data/bss
140                  163848 heap (peak use)
141                    4248 stack
142          to:
143                  271240 code
144                   55472 data/bss
145                  159752 heap (peak use)
146                    4224 stack
147
148          And reading the 1279x1023 pixmap with 14 colors it goes from:
149                  255256 code
150                   55496 data/bss
151                 6705160 heap (peak use)
152                    4280 stack
153          to:
154                  271240 code
155                   55472 data/bss
156                 1732616 heap (peak use)
157                    4264 stack
158
159          This clearly shows that while for small pixmaps there is no real
160          difference on both sides, for large pixmaps this makes a huge
161          difference about the amount of memory used and it is not much
162          slower.
163
164          Note that you can still get the old behavior using both
165          XpmReadFileToXpmImage and XpmCreate[Image/Pixmap]FromXpmImage instead
166          of XpmReadFileTo[Image/Pixmap]. Once more XPM gives you the choice!
167
168    BUGS CORRECTED:
169        - when defined locally the global symbols strcasecmp and strdup are
170          now called xpmstrcasecmp and xpmstrdup to avoid any possible
171          conflict.
172        - VMS has a bogus file system which requires a work around in
173          XpmReadFileToBuffer.
174                  - patch from Bob.Deen@jpl.nasa.gov
175        - the type of the exactColors attribute has been changed from unsigned
176          int to Bool.
177
178    CHANGES TO THE DOC:
179        - the documentation describes the new XpmAttributes fields
180          alloc_close_colors and bitmap_format.
181
1823.4g    (95/10/08)
183
184    ENHANCEMENTS:
185        - The XpmAttributes structure has now two new slots: alloc_pixels and
186          nalloc_pixels in order to provide an easy way to free allocated
187          colors. The new bitmask XpmReturnAllocPixels should be used to
188          request this data through the valuemask. Unless you really know why,
189          you should use this instead of XpmReturnPixels, pixels, and npixels.
190        - the XPM1 format parsing has been improved.
191                  - patch from Chuck Thompson <cthomp@cs.uiuc.edu>
192        - compilers defining _STDC_ to something different from 1 are now
193          considered as ANSI compilers.
194        - the README file provides now more info on how to build XPM depending
195          on the system.
196
197    BUGS CORRECTED:
198        - a bug introduced in 3.4f in the XPM1 format parsing function.
199                  - fix from Chuck Thompson <cthomp@cs.uiuc.edu>
200        - the hashtable was not free when the color parsing failed.
201                  - patch from ackley@cs.unm.edu (David Ackley)
202        - the close color mechanism wasn't used if one of the closeness
203          parameter was null. Now only one needs to be different from 0.
204                    Lorens Younes d93-hyo@nada.kth.se
205        - parsing of long comments failed with a segmentation fault.
206
207    CHANGES TO THE DOC:
208        - the documentation describes the new XpmAttributes fields
209          alloc_pixels and nalloc_pixels and how they are used.
210
2113.4f    (95/05/29)
212
213    ENHANCEMENTS:
214        - Defines IMAKE_DEFINES in the top Imakefile so one can easily avoid
215          building the shared library.
216        - Add some information about the installation process in the README.
217        - filenames are surrounded with quotes when calling gzip or compress in
218          order to allow spaces within filenames.
219                  - William Parn <parn@fgm.com>
220        - the compilation and the shared library building should be smoother
221          on Alpha OSF/1.
222                  - patch from Dale Moore <Dale.Moore@CS.cmu.edu>
223
224    BUGS CORRECTED:
225        - a segmentation fault occurring in some weird case.
226
2273.4e    (95/03/01)
228
229    ENHANCEMENTS:
230        - The top Imakefile passes CDEBUGFLAGS and DEFINES to subdirs. Thus
231          only this Imakefile should need to be edited by users.
232        - FAQ includes the answer to the question "How can I get a non
233          rectangular icon using XPM ?"
234        - VMS support updated
235                  - patch from Martin P.J. Zinser m.zinser@gsi.de
236
237    BUGS CORRECTED:
238        - XpmCreateImageFromXpmImage() called from XpmReadFileToPixmap() could
239          lead to a segmentation fault since free was called on a memory block
240          size variable instead of the block itself. Note: this bug has been
241          introduced in 3.4d.
242
2433.4d    (95/01/31)
244
245    ENHANCEMENTS:
246        - sxpm now supports a -version option command.
247
248    BUGS CORRECTED:
249        - the list of pixels returned in XpmAttributes was wrong when two
250          colors were defined as None in the read XPM
251                  - Lionel.Mallet@sophia.inria.fr
252        - the parser was skipping whitespace reading extensions strings. This
253          has been fixed so extensions lines are now returned exactly as they
254          are.
255        - some compilation control added for the dec alpha with X11R5 (LONG64)
256                  - patch from Fredrik Lundh <Fredrik_Lundh@ivab.se>
257        - when writing an XPM file, '-' characters are replaced with '_'
258          characters in the array name, in order to get a valid C syntax name.
259        - XYPixmap format images were not correctly handled.
260        - XPM1 file with names using multiple '_' characters are now handled
261          correctly.
262                  - todd@erda.rl.af.mil (Todd Gleason)
263
2643.4c    (94/06/06)
265
266    Yes, this is kind of quick. But this is because no code has been modified,
267    this is just a new packaging to make the whole stuff more suitable to the
268    X development team's requests for inclusion in the R6 contrib.
269
270    ENHANCEMENTS:
271        - Several filenames were too long to fit without any conflict on DOS
272          and CD-ROM filesystems. They have been renamed.
273        - Imakefiles use XCOMM for comments instead of the # character.
274        - the Postscript documentation file doc/xpm.ps is now distributed as
275          doc/xpm.PS.gz and allows browsing with tools such as ghostview.
276        - Besides, parts of lib/misc.c have been moved to several new files,
277          and some functions of data.c have been moved to other files in
278          order to get a better link profile.
279        - I've also added a FAQ hoping this will prevent people from
280          continuously filling my mailbox with the same questions.
281        - sxpm.c includes <X11/xpm.h> instead of "xpm.h" and BUILDINCTOP is
282          used in Makefiles as expected.
283        - Everything can be done simply using "xmkmf -a" and "make".
284
2853.4b    (94/05/24)
286
287    ENHANCEMENTS:
288        - XPM can now be built under MS Windows. Yes, this is possible and this
289          entirely comes from:
290                - Hermann Dunkel <hedu@cul-ipn.uni-kiel.de>
291          See the README.MSW file for details.
292
293        - building the shared library now depends on the SharedLibXpm variable
294          and no longer on the SharedLibX variable which is private to the X
295          Window System project.
296                - patch from Stephen Gildea <gildea@x.org>
297          Other variables can now be set for the various locations needed.
298
299        - lib/parse.c does no longer use a 256x256 array in the stack but
300          malloc it instead.
301
302        - The Copyright notice which has been re-written from the X11R6's one
303          should be clearer and is now present in every file.
304
305    BUGS CORRECTED:
306        - lib/xpmP.h does no longer define a Boolean type which conflicts with
307          the Intrinsic definition. Instead the type Bool defined in Xlib is
308          used.
309                - neumann@watson.ibm.com (Gustaf Neumann)
310
3113.4a    (94/03/29)
312
313    BUGS CORRECTED:
314        - passing NULL as shapemask_return to XpmReadFileToPixmap and similar
315          functions was leading to a bus error.
316                - Dean Luick <dean@falcon.natinst.com>
317
3183.4     (94/03/14)
319
320    IMPORTANT NOTE:
321        This version is not compatible with 3.3. Fortunately most people should
322        only need to recompile.
323        I apology for this but CDE/Motif have put heavy pressure to go that
324        way. The point is that I designed and released Xpm 3.3 in order to let
325        OSF include a clean version of Xpm in Motif 2.0. This new version was
326        not fully compatible with 3.2 but I thought it didn't matter since this
327        was going to be the first version used within Motif. Unfortunately CDE
328        was already using xpm-3.2 internally and requires both source and
329        binary backward compatibility. By the way I must say they didn't drop
330        us a single line to let us know they were using it and thus were
331        expecting stability. All this could have been avoided...
332
333        However, since I had to go for a not compatible version I took this as
334        an opportunity to modify the lower level API, which was new in 3.3 and
335        which was somewhat clumsy, in order to provide yet a better API.
336
337        The library has been modified to have both source and binary backward
338        compatibility with xpm-3.2. This implies it is not either source or
339        binary compatible with 3.3. The fields related to the 3.2 XpmInfos
340        mechanism have been put back into the XpmAttributes structure. The new
341        3.3 XpmInfos struct has been renamed as XpmInfo to avoid conflict with
342        the old 3.2 flag which is back too. All the semantic related to the
343        XpmAttributes infos fields is back as well.
344
345        So this new version provides a high level API which is fully
346        compatible with 3.2 and still provides the 3.3 lower level API
347        (XpmImage) with the XpmInfos struct renamed as XpmInfo. This leads to
348        some redundancy but this was the best I could do to satisfy both
349        CDE/Motif people who needed the backward compatibility and myself (who
350        always tries to provide you with the best ;-).
351
352        Tests have been successfully performed with pixmap-2.1, pixmap-2.4, and
353        sxpm.
354
355    ENHANCEMENTS:
356        - The colorTable member of the XpmAttributes structure is now an
357          (XpmColor*) in order to be compatible with an XpmImage colorTable.
358          However in order to be backward compatible this field is cast to
359          (XpmColor **), which is equivalent to (char ***), when it is used
360          with the old flags XpmInfos and XpmReturnInfos. To handle the new
361          type the new flags XpmColorTable and XpmReturnColorTable have been
362          defined.
363        - The XpmInfo struct has been extended to avoid having to deal with an
364          XpmAttributes at the lower level. The idea is that all the data
365          stored in an Xpm file can be retrieve through both an XpmImage and
366          an XpmInfo struct. See the documentation for details.
367        - XpmUndefPixel is defined and exported by xpm.h in order to let
368          clients providing their own colorTable when writing out an Xpm file.
369          See the documentation for details.
370        - in sxpm/sxpm.c, set attribute XtNinput to True on toplevel widget.
371          Windows that don't "take" input, never get focus, as mandated by
372          the ICCM.
373                patch from Henrique Martins <martins@hplhasm.hpl.hp.com>
374        - lib/Imakefile modified to build the shared library under IRIX 5.
375                patch from simon@lia.di.epfl.ch (Simon Leinen)
376
377    NEW FEATURES:
378        - a new function and a new define should help client figuring out with
379          which Xpm library version they are working. These are
380          XpmIncludeVersion and XpmLibraryVersion().
381
3823.3     (93/12/20)
383
384    NEW FEATURES:
385        - XPM1 files are now supported.
386        - a new function is provided to get an error string related to the
387          returned error code.
388                - suggested by Detlef Schmier <detlef@mfr.dec.com>
389
390    ENHANCEMENTS:
391        - gzip and gunzip are called with the -q option (quiet)
392                - patch from Chris P. Ross <cross@eng.umd.edu>
393        - the parser is again more flexible about the way the strings are
394          distributed on lines. Actually a single line XPM file can be read.
395        - the documentation should be clearer about shapemask generation and
396          XpmAttributes valuemask.
397
398    BUGS CORRECTED:
399        - reading some binary file was leading to a bus error.
400                - patch from Detlef Schmier <detlef@mfr.dec.com>
401        - the ? character is no longer used when writing an XPM file in order
402          to avoid possible ANSI trigraphs.
403
4043.3alpha (93/08/13)
405
406    NEW FEATURES:
407        - a new level interface is provided to allow applications to do either
408          icon editing or data caching.
409          The XpmAttributes has been changed but most applications will just
410          need to be recompiled.
411        - new structures are provided to deal with the new lower level:
412                 XpmImage, XpmColor, XpmInfos.
413
414        - a separate distribution called xpm-contrib is available. This
415          includes the converters which used to be part of this distribution
416          plus:
417                two new applications:
418                * nexpm to draw a pixmap in *any* existing window from
419                         Ralph Betza <gnohmon@ssiny.com>
420                * xpmview to display a list of Xpm files from
421                         Jean Michel Leon <leon@sophia.inria.fr>
422
423                a hacky string to pixmap converter, provided by
424                        Robert H. Forsman Jr.  <thoth@manatee.cis.ufl.edu>
425
426                The Xpm editor called pixmap will also be part of this contrib.
427                This does not mean it is the best pixmap editor one can find
428                but it is the only one that I know of which tries to handle
429                all the features of this format.
430
431    ENHANCEMENTS:
432        - the code to build XImage data has been optimized by
433                 jules@x.co.uk (Julian Gosnell)
434          the old code is still available when compiling with the
435          -DWITHOUT_SPEEDUPS flag.
436
437        - closecolor code was not re-entrant
438                 - dbl@visual.com (David B. Lewis)
439        - fix gzip filename (*.gz and no longer *.z).
440                 - Jason Patterson <jasonp@fitmail.fit.qut.edu.au>
441        - sxpm has 2 new options:
442                 -nom to do not display the mask if there is one
443                 -cp <color> <pixel> to override a color value with a given
444                 pixel, i.e. sxpm plaid.xpm -cp red 4
445
446          also the '-s' adn '-p' options have been renamed to '-sc' and '-sp'.
447
448        - xpm.h defines XpmFormat, XpmVersion, and XpmRevision numbers.
449
450    BUGS CORRECTED:
451        - closecolor minor fix
452                 - Jason Patterson <jasonp@fitmail.fit.qut.edu.au>
453
4543.2g    (93/04/26)
455
456    ENHANCEMENTS:
457        - much faster close colors
458        - piping from/to compressed files now handles GNU's gzip (.z)  format
459        - added XpmColorKey attribute - ability to specify which visual's
460          colors to use (ie: now it's possible to read in a pixmap in a
461          color visual, but use the colors specified for monochrome).
462        - added -mono, -grey4, -grey and -color options to sxpm to demonstrate
463          the XpmColorKey attribute.
464                - Jason Patterson <jasonp@fitmail.qut.edu.au>
465
466    BUGS CORRECTED:
467        - fixed bug where redefining "None" as a pixel stopped mask generation
468        - minor SVR4 defines for <string.h>
469        - fixed annoying closecolor bug related to read/write color cells
470        - fixed minor bug in color value -> pixel overloading
471        - manual updated to include new red/green/blue closeness attributes
472                - Jason Patterson <jasonp@fitmail.qut.edu.au>
473
474        - the top Imakefile was missing the depend target
475        - sxpm/Imakefile fixed so that -L../lib is set before the standard
476          library location.
477                - Vivek Khera <khera@cs.duke.edu>
478
479        - lib/xpmP.h now defines bcopy as memcpy for VMS (required by recent
480          versions of VMS)
481                - J. Daniel Smith <dsmith@ann-arbor.applicon.slb.com>
482
483        - the lib/Imakefile didn't work with X11R4.
484
485
4863.2f            (93/03/17)
487
488    NEW FEATURES:
489        - the library provides four new functions to deal with Xpm files
490          loaded in memory as single character strings buffers:
491
492                        XpmCreateImageFromBuffer
493                        XpmCreatePixmapFromBuffer
494                        XpmCreateBufferFromImage
495                        XpmCreateBufferFromPixmap
496
497        - in addition, as a convenience, two functions are provided to copy a
498          file in a buffer and to write a file from a buffer:
499
500                        XpmReadFileToBuffer
501                        XpmWriteFileFromBuffer
502
503    ENHANCEMENTS:
504        - Files are now dispatched in the following sub-directories:
505          lib, sxpm, and doc.
506        - Imakefiles will let you build a shared library as well as the static
507          one (with either X11R4 or X11R5).
508        - The documentation has been ported from LaTeX to FrameMaker and is
509          now included in the distribution in its PostScript form (doc/xpm.ps).
510          Source files are available on request.
511          Also the documentation has been reorganized and includes a table of
512          contents and an index of the functions (the number of functions
513          increasing this became a requisite).
514
515    BUGS CORRECTED:
516        - Many warnings have been fixed - patch from Daniel Dardailler
517          daniel@osf.org
518
5193.2e            (93/02/05)
520
521    ENHANCEMENTS:
522        - use XpmMalloc, XpmRealloc, XpmCalloc, and XpmFree which are defines
523        in xpmP.h. This should help people wanting to use their own functions.
524
525    BUGS CORRECTED:
526        - Intrinsic.h is no longer included.
527        - bzero is defined as memset on SYSV and SVR4.
528        - some memory initialization bug concerning XpmAttributes.
529
5303.2d            (93/01/27)
531
532    ENHANCEMENTS:
533        - compile on Solaris 2.0
534                - patch from Clint Jeffery <cjeffery@cs.arizona.edu>
535
536    BUGS CORRECTED:
537        - shape masks are now set correctly for LSBFirst (Decs).
538        - pixmaps are now set correctly for 2 bit displays (Nexts).
539                - patch from Josef Leherbauer <joe@takeFive.co.at>
540        - isspace was called on getc which fails when EOF is returned.
541                - Marelli Paolo <marelli@colos3.usr.dsi.unimi.it>
542
5433.2c            (92/12/29)
544
545    ENHANCEMENTS:
546        - parsing optimized for single and double characters color
547                - patch originally from Martin Brunecky
548                                       marbru@build1.auto-trol.com
549
550    BUGS CORRECTED:
551        - XpmFreeExtensions was calling free on some argument without checking
552        it was not NULL.
553        - strdup was not correctly defined for systems which do not provide
554        it.     - Hans-Peter Lichtin <lich@zellweger.ch>
555        - some bug in XpmCrDataFI.c
556                - Sven Delmas garfield@avalanche.cs.tu-berlin.de
557
558    NOTE:
559        - there is still a bug with the creation of the clipmask on display of
560        depth 2 but I can't find a fix because unfortunately I don't have such
561        a rendering system and nobody gets the time to investigate for me.
562
5633.2b            (92/10/19)
564
565    ENHANCEMENTS:
566        - Create XpmReadFileToData and XpmWriteFileFromData
567                - Dan Greening <dgreen@sti.com>
568        - added "close colors" support and ability to redefine color values
569          as pixels at load time, as well as color names
570                - Jason Patterson <jasonp@fitmail.qut.edu.au>
571        - errors while parsing or allocating colors now revert to other
572          visual defaults, creating pixmap/image as expected, and returning
573          XpmSuccess. The old behavior of XpmColorError being returned and no
574          pixmap/image being created can be retained by setting the
575          exactColors attribute.
576                - Jason Patterson <jasonp@fitmail.qut.edu.au>
577
578    BUGS CORRECTED:
579        - SVR4 defines for including <string.h> instead of <strings.h>
580                - Jason Patterson <jasonp@fitmail.qut.edu.au>
581        - attributes->extensions and attributes->nextensions fields were not
582          set correctly when no extensions present in file.
583                - Simon_Scott Cornish <cornish@ecr.mu.oz.au>
584
5853.2a            (92/08/17)
586
587    ENHANCEMENTS:
588        - use the mock lisp hashing function instead of the gnu emacs one,
589        it is faster in some cases and never slower (I've not found any case).
590
591    BUGS CORRECTED:
592        - function prototypes for ansi compilers.
593        - some memory initialization bugs (purify is just great for this).
594        - empty strings in extensions are now correctly handled.
595
5963.2             (92/07/06)
597
598    NEW FEATURES:
599        - both format and functions handle extensions data. This allow people
600        to store additional data related to a pixmap. See documentation for
601        detail.
602        - sxpm supports the new option '-c' to use a private colormap. This is
603        useful when displaying pixmaps using a lot of colors.
604        - sxpm supports the new option '-v' (verbose) to get possible
605        extensions print out on standard error.
606
607    ENHANCEMENTS:
608        - most of the code has been reworked to be improved and thus almost
609        every function is faster. It takes less than 6 seconds of real time on
610        a sun4 to display, with sxpm, a 487x635 pixmap using 213 colors, while
611        it takes 32 seconds with the old library! It takes 18 seconds to
612        display a 1279x1023 screen dump using 14 colors while xwud takes 10
613        seconds.
614        Of course performance improvements are not always that great, they
615        depend on the size and number of colors but I'm sure everybody will
616        appreciate ;-)
617        I know how to improve it more but this will require changes in the
618        architecture so this is not for now. Some optimizations have been
619        contributed by gregor@kafka.saic.com (gregg hanna) and
620        jnc@csl.biosci.arizona.edu (John N. Calley).
621        - the Imakefile is modified to let you install sxpm - Rainer Klute
622           <klute@irb.informatik.uni-dortmund.de>
623        - xpmP.h declares popen for Sequent platforms - Clinton Jeffery
624           <cjeffery@cs.arizona.edu>
625        - XpmWriteFileFromImage/Pixmap rather than truncating the pixmap name
626        to the first dot changes dots to underscores to get a valid C syntax
627        name.
628
629
630    BUGS CORRECTED:
631        - there was a bug in the image creation function for some 24 bits
632        displays. It is fixed.
633        - allocated color pixels are now freed when an error occurs -
634           nusser@dec1.wu-wien.ac.at (Stefan Nusser)
635
636    CHANGES TO THE DOC:
637        - the documentation describes the new XpmExtension structure and how
638        to use it with read and write functions.
639
6403.1             (92/02/03)
641
642    ENHANCEMENTS:
643        - sxpm now have more standard options (mainly suggested by
644        Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>):
645
646        Usage:  sxpm [options...]
647        Where options are:
648
649        [-d host:display]            Display to connect to.
650        [-g geom]                    Geometry of window.
651        [-hints]                     Set ResizeInc for window.
652        [-icon filename]             Set pixmap for iconWindow.
653        [-s symbol_name color_name]  Overwrite color defaults.
654        [-p symbol_name pixel_value] Overwrite color defaults.
655        [-plaid]                     Read the included plaid pixmap.
656        [filename]                   Read from file 'filename', and from
657                                     standard input if 'filename' is '-'.
658        [-o filename]                Write to file 'filename', and to standard
659                                     output if 'filename' is '-'.
660        [-nod]                       Don't display in window.
661        [-rgb filename]              Search color names in the rgb text file
662                                     'filename'.
663
664        if no input is specified sxpm reads from standard input.
665
666
667        - Xpm functions and Ppm converters now deal with multiword colornames.
668          patches from Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>.
669
670
6713.0             (91/10/03)
672
673        Functions name and defines have been modified again (sorry for that)
674        as follows:
675
676             XpmReadPixmapFile    XpmReadFileToPixmap
677             XpmWritePixmapFile   XpmWriteFileFromPixmap
678
679             XpmPixmapColorError  XpmColorError
680             XpmPixmapSuccess     XpmSuccess
681             XpmPixmapOpenFailed  XpmOpenFailed
682             XpmPixmapFileInvalid XpmFileInvalid
683             XpmPixmapNoMemory    XpmNoMemory
684             XpmPixmapColorFailed XpmColorFailed
685
686        To update code using Xpm you can use the included shell script called
687        rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0.
688        Old names still valid though.
689
690    NEW FEATURES:
691        - four new functions to work with images instead of pixmaps:
692
693             XpmReadFileToImage
694             XpmWriteFileFromImage
695             XpmCreateImageFromData
696             XpmCreateDataFromImage
697
698    ENHANCEMENTS:
699        Algorithms to create and scan images and pixmaps are based on the
700        MIT's R5 code, thus they are much cleaner than old ones and should
701        avoid any problem with any visual (yes, I trust MIT folks :-)
702
703    BUGS CORRECTED:
704        Imakefile use INCDIR instead of ROOTDIR.
705
706    CHANGES TO THE DOC:
707        - the documentation presents the four new functions.
708
7093.0c            (91/09/18)
710
711        In answer to request of people functions, types and defines names have
712        been changed as follows:
713
714             XCreatePixmapFromData       XpmCreatePixmapFromData
715             XCreateDataFromPixmap       XpmCreateDataFromPixmap
716             XReadPixmapFile             XpmReadPixmapFile
717             XWritePixmapFile            XpmWritePixmapFile
718             XFreeXpmAttributes          XpmFreeAttributes
719
720             PixmapColorError            XpmPixmapColorError
721             PixmapSuccess               XpmPixmapSuccess
722             PixmapOpenFailed            XpmPixmapOpenFailed
723             PixmapFileInvalid           XpmPixmapFileInvalid
724             PixmapNoMemory              XpmPixmapNoMemory
725             PixmapColorFailed           XpmPixmapColorFailed
726
727             ColorSymbol                 XpmColorSymbol
728
729        Generally speaking every public name begins with 'Xpm' and every
730        private one with 'xpm'. This should avoid any possible conflict.
731
732        Some files have also be renamed accordingly.
733
734    NEW FEATURES:
735        - support for VMS and two new options for sxpm: icon and hints (see
736        manual for details) Richard Hess <rhess%pleione%cimshop@uunet.UU.NET>
737        - DEFINES in Imakefile and Makefile.noXtree allows you to set the
738        following:
739
740                 ZPIPE for un/compressing piped feature (default is on)
741                 NEED_STRCASECMP for system which doesn't provide one (default
742                                 is off)
743
744        - xpmtoppm.c has is own strstr function which is used if NEED_STRSTR
745        is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy).
746       
747    BUGS CORRECTED:
748        - many bugs have been fixed, especially for ansi compilers -
749               Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and
750               Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET)
751        - parser is again a little more improved
752
7533.0b            (91/09/12)
754
755        This is a complete new version with a new API and where files and
756        structures have been renamed. So this should be taken as a new
757        starting release.
758        This release should be quickly followed by the 3.0 because I'm planning
759        to send it for X11R5 contrib which ends October 5th.
760
761    NEW FEATURES:
762        - support for transparent color.
763        - support for hotspot.
764        - a new function: XCreateDataFromPixmap to create an XPM data from a
765        pixmap in order to be able to create a new pixmap from this data using
766        the XCreatePixmapFromData function later on.
767        - a new structure: XpmAttributes which replace the XpmInfo structure
768        and which leads to a much simpler API with less arguments.
769        - arguments such as visual, colormap and depth are optional, default
770        values are taken if omitted.
771        - parsing and allocating color failures don't simply break anymore. If
772        another default color can be found it is used and a PixmapColorError
773        is returned. In case no color can be found then it breaks and returns
774        PixmapColorFailed.
775        - for this reason the ErrorStatus codes are redefined as follows:
776
777                   null     if full success
778                   positive if partial success
779                   negative if failure
780
781        with:
782                #define PixmapColorError    1
783                #define PixmapSuccess       0
784                #define PixmapOpenFailed   -1
785                #define PixmapFileInvalid  -2
786                #define PixmapNoMemory     -3
787                #define PixmapColorFailed  -4
788
789        - sxpm prints out a warning when a requested color could not be parsed
790        or alloc'ed, and an error when none has been found.
791        - sxpm handles pixmap with transparent color. For this purpose the
792        plaid_mask.xpm is added to the distribution.
793
794    BUGS CORRECTED:
795        - I've again improved the memory management.
796        - the parser is also improved.
797        - when writing a pixmap to a file the variable name could be
798        "plaid.xpm" which is not valid in C. Now the extension name is cut off
799        to give "plaid" as variable name.
800        - reading multiple words colornames such as "peach puff" where leading
801        to non readable Xpm files. They are now skipped to have only single
802        word colorname. Lionel Mallet (mallet@ipvpel.unipv.it).
803        - parser was triggered by the "/" character inside string.
804        Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected.
805        - sxpm maps the window only if the option "-nod" is not selected.
806
807    CHANGES TO THE DOC:
808        - the documentation presents the new API and features.
809
8103.0a            (91/04/10)
811
812        This is an alpha version because it supports the new version of XPM,
813        but the library interface is still the same. Indeed it will change in
814        future release to get rid of obsolete stuff such as the type argument
815        of the XWritePixmapFile function.
816
817    ******************************* WARNING *********************************
818        The format is not anymore XPM2, it is XPM version 3 which is XPM2
819        limited to the C syntax with the key word "XPM" in place of "XPM2 C".
820        The interface library has not changed yet but the type argument of
821        XWritePixmapFile and the type member of XpmInfo are not used anymore.
822        Meanwhile the library which is now called libXpm.a is backward
823        compatible as XPM2 files can be read. But the XWritePixmapFile
824        function only writes out XPM version 3 files.
825    *************************************************************************
826
827    NEW FEATURES:
828        - the library doesn't use global variables anymore, thus it should be
829        able to share it.
830        - sxpm has been rewritten on top of Xt, it can be used to convert
831        files from XPM2 to XPM version 3.
832        - xpm1to2c.perl has been upgraded to the new XPM version and renamed
833        as xpm1to3.perl
834        - ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed
835        ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1
836        of the pbmplus package have been upgraded too. xpmtoppm can thus
837        convert XPM version 1 and 3 to a portable pixmap. These files should
838        replace the original ones which are part of the pbmplus package. See
839        the ppm.README file for more details.
840        - the library contains RCS variables which allows you to get revision
841        numbers with ident (which is part of the RCS package). The Id number
842        is an internal rcs number for my eyes only. The official one is found
843        in Version.
844
845    BUGS CORRECTED:
846        - the memory management has been much improved in order to avoid
847        memory leaks.
848        - the XImage building algorithm has been changed to support correctly
849        different visual depths. There is special code to handle depths 1, 4,
850        6, 8, 24, and 32 to build the image and send it in one whack, and
851        other depths are supported by building the image with XPutPixel which
852        is slow but sure.
853        - similar algorithms are used to read pixmaps and write them out.
854
855    CHANGES TO THE DOC:
856        - the documentation presents the new XPM format.
857
858
8592.8             (90/12/19)
860
861    ******************************* WARNING *********************************
862        Since the last release two structures have been modified and have now
863        bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED.
864    *************************************************************************
865
866    NEW FEATURES:
867        - the ColorSymbol struct contains the new member 'pixel' which allow
868        to override default colors by giving a pixel value (in such a case
869        symbol value must be set to NULL),
870        - the XpmInfo struct contains the new member 'rgb_fname' in which one
871        can specify an rgb text file name while writing a pixmap with the
872        XWritePixmapFile function (otherwise this member should be set to
873        NULL). This way colorname will be searched and written out if found
874        instead of the RGB value,
875        - Imakefile originally provided by stolcke@ICSI.Berkeley.EDU,
876        - the old Makefile is now distributed as Makefile.noXtree and presents
877        install targets,
878        - the demo application is renamed sxpm (Show XPM), creates a window of
879        the size of the pixmap if no geometry is specified, prints out
880        messages instead of status when an error occurs, handles the new
881        option -p for overriding colors by giving a pixel value (not really
882        useful but is just here to show this new feature), handles the new
883        option -rgb for specifying an rgb text file, and ends on
884        keypress as buttonpress,
885        - defines for SYSV have been provided by Paul Breslaw
886        <paul@mecazh.uucp>,
887        - the distribution includes a new directory called converters which
888        contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2
889        converter provided by Paul Breslaw who upgraded the original ppmtoxpm
890        written by Mark W. Snitily <mark@zok.uucp>.
891
892    CHANGES TO THE DOC:
893        - this file is created and will give old users a quick reference to
894        changes made from one release to the next one,
895        - documentation is changed to present the new ColorSymbol structure
896        and the way to override colors by giving a pixel value, and to present
897        the new XpmInfo structure and how to use it,
898        - a man page for sxpm is added to the distrib,
899        - the README file talks about sxpm and no more demo, and have
900        reference to the different converters.
901
9022.7             (90/11/12)
903
904    NEW FEATURES:
905        - XReadPixmapFile reads from stdin if filename is NULL,
906        - XWritePixmapFile writes to stdin if filename is NULL,
907        - the demo application handles the new option -nod for no displaying
908        the pixmap in a window (useful when used as converter).
909
910    CHANGES TO THE DOC:
911        - documentation about the new feature.
912
9132.6             (90/10/29)
914
915    NEW FEATURES:
916        - from nazgul@alphalpha.com (Kee Hinckley): changes to make the
917        library usable as C++ code, and on Apollo without any warning.
918
919    BUGS CORRECTED:
920        - from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was
921        declaring XWritePixmapFile as taking in arg a Pixmap pointer instead
922        of a Pixmap.
923
9242.5             (90/10/17)
925
926    BUGS CORRECTED:
927        - XWritePixmapFile was not closing the file while ending normally.
928
9292.4             (90/09/06)
930
931    NEW FEATURES:
932        - XReadPixmapFile reads from a piped uncompress if the given filename
933        ends by .Z or if filename.Z exists,
934        - XWritePixmapFile writes to a piped compress if the given filename
935        ends by .Z.
936
937    BUGS CORRECTED:
938        - demo now deals with window manager.
939
940    CHANGES TO THE DOC:
941        - documentation about compressed files management.
942
9432.3             (90/08/30)
944
945    BUGS CORRECTED:
946        - handle monochrome display correctly,
947        - comments can be empty.
948
9492.2             (90/08/27)
950
951    BUGS CORRECTED:
952        - when reading some invalid free was dumping core on some machine.
953
9542.1             (90/08/24)
955
956    First distribution of XPM2.
957
Note: See TracBrowser for help on using the repository browser.