]>
Commit | Line | Data |
---|---|---|
cfbe03c9 JS |
1 | /* |
2 | * Copyright (C) 1989-94 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 | ||
32 | 3.4b (94/05/24) | |
33 | ||
34 | ENHANCEMENTS: | |
35 | - XPM can now be built under MS Windows. Yes, this is possible and this | |
36 | entirely comes from: | |
37 | - Hermann Dunkel <hedu@cul-ipn.uni-kiel.de> | |
38 | See the README.MSW file for details. | |
39 | ||
40 | - building the shared library now depends on the SharedLibXpm variable | |
41 | and no longer on the SharedLibX variable which is private to the X | |
42 | Window System project. | |
43 | - patch from Stephen Gildea <gildea@x.org> | |
44 | Other variables can now be set for the various locations needed. | |
45 | ||
46 | - lib/parse.c does no longer use a 256x256 array in the stack but | |
47 | malloc it instead. | |
48 | ||
49 | - The Copyright notice which has been re-written from the X11R6's one | |
50 | should be clearer and is now present in every file. | |
51 | ||
52 | BUGS CORRECTED: | |
53 | - lib/xpmP.h does no longer define a Boolean type which conflicts with | |
54 | the Intrinsic definition. Instead the type Bool defined in Xlib is | |
55 | used. | |
56 | - neumann@watson.ibm.com (Gustaf Neumann) | |
57 | ||
58 | 3.4a (94/03/29) | |
59 | ||
60 | BUGS CORRECTED: | |
61 | - passing NULL as shapemask_return to XpmReadFileToPixmap and similar | |
62 | functions was leading to a bus error. | |
63 | - Dean Luick <dean@falcon.natinst.com> | |
64 | ||
65 | 3.4 (94/03/14) | |
66 | ||
67 | IMPORTANT NOTE: | |
68 | This version is not compatible with 3.3. Fortunately most people should | |
69 | only need to recompile. | |
70 | I apology for this but CDE/Motif have put heavy pressure to go that | |
71 | way. The point is that I designed and released Xpm 3.3 in order to let | |
72 | OSF include a clean version of Xpm in Motif 2.0. This new version was | |
73 | not fully compatible with 3.2 but I thought it didn't matter since this | |
74 | was going to be the first version used within Motif. Unfortunately CDE | |
75 | was already using xpm-3.2 internally and requires both source and | |
76 | binary backward compatibility. By the way I must say they didn't drop | |
77 | us a single line to let us know they were using it and thus were | |
78 | expecting stability. All this could have been avoided... | |
79 | ||
80 | However, since I had to go for a not compatible version I took this as | |
81 | an opportunity to modify the lower level API, which was new in 3.3 and | |
82 | which was somewhat clumsy, in order to provide yet a better API. | |
83 | ||
84 | The library has been modified to have both source and binary backward | |
85 | compatibility with xpm-3.2. This implies it is not either source or | |
86 | binary compatible with 3.3. The fields related to the 3.2 XpmInfos | |
87 | mechanism have been put back into the XpmAttributes structure. The new | |
88 | 3.3 XpmInfos struct has been renamed as XpmInfo to avoid conflict with | |
89 | the old 3.2 flag which is back too. All the semantic related to the | |
90 | XpmAttributes infos fields is back as well. | |
91 | ||
92 | So this new version provides a high level API which is fully | |
93 | compatible with 3.2 and still provides the 3.3 lower level API | |
94 | (XpmImage) with the XpmInfos struct renamed as XpmInfo. This leads to | |
95 | some redundancy but this was the best I could do to satisfy both | |
96 | CDE/Motif people who needed the backward compatibility and myself (who | |
97 | always tries to provide you with the best ;-). | |
98 | ||
99 | Tests have been successfully performed with pixmap-2.1, pixmap-2.4, and | |
100 | sxpm. | |
101 | ||
102 | ENHANCEMENTS: | |
103 | - The colorTable member of the XpmAttributes structure is now an | |
104 | (XpmColor*) in order to be compatible with an XpmImage colorTable. | |
105 | However in order to be backward compatible this field is cast to | |
106 | (XpmColor **), which is equivalent to (char ***), when it is used | |
107 | with the old flags XpmInfos and XpmReturnInfos. To handle the new | |
108 | type the new flags XpmColorTable and XpmReturnColorTable have been | |
109 | defined. | |
110 | - The XpmInfo struct has been extended to avoid having to deal with an | |
111 | XpmAttributes at the lower level. The idea is that all the data | |
112 | stored in an Xpm file can be retreive through both an XpmImage and | |
113 | an XpmInfo struct. See the documentation for details. | |
114 | - XpmUndefPixel is defined and exported by xpm.h in order to let | |
115 | clients providing their own colorTable when writting out an Xpm file. | |
116 | See the documentation for details. | |
117 | - in sxpm/sxpm.c, set attribute XtNinput to True on toplevel widget. | |
118 | Windows that don't "take" input, never get focus, as mandated by | |
119 | the ICCM. | |
120 | patch from Henrique Martins <martins@hplhasm.hpl.hp.com> | |
121 | - lib/Imakefile modified to build the shared library under IRIX 5. | |
122 | patch from simon@lia.di.epfl.ch (Simon Leinen) | |
123 | ||
124 | NEW FEATURES: | |
125 | - a new funtion and a new define should help client figuring out with | |
126 | which Xpm library version they are working. These are | |
127 | XpmIncludeVersion and XpmLibraryVersion(). | |
128 | ||
129 | 3.3 (93/12/20) | |
130 | ||
131 | NEW FEATURES: | |
132 | - XPM1 files are now supported. | |
133 | - a new function is provided to get an error string related to the | |
134 | returned error code. | |
135 | - suggested by Detlef Schmier <detlef@mfr.dec.com> | |
136 | ||
137 | ENHANCEMENTS: | |
138 | - gzip and gunzip are called with the -q option (quiet) | |
139 | - patch from Chris P. Ross <cross@eng.umd.edu> | |
140 | - the parser is again more flexible about the way the strings are | |
141 | distributed on lines. Actually a single line XPM file can be read. | |
142 | - the documentation should be clearer about shapemask generation and | |
143 | XpmAttributes valuemask. | |
144 | ||
145 | BUGS CORRECTED: | |
146 | - reading some binary file was leading to a bus error. | |
147 | - patch from Detlef Schmier <detlef@mfr.dec.com> | |
148 | - the ? character is no longer used when writting an XPM file in order | |
149 | to avoid possible ANSI trigraphs. | |
150 | ||
151 | 3.3alpha (93/08/13) | |
152 | ||
153 | NEW FEATURES: | |
154 | - a new level interface is provided to allow applications to do either | |
155 | icon editing or data caching. | |
156 | The XpmAttributes has been changed but most applications will just | |
157 | need to be recompiled. | |
158 | - new structures are provided to deal with the new lower level: | |
159 | XpmImage, XpmColor, XpmInfos. | |
160 | ||
161 | - a separate distribution called xpm-contrib is available. This | |
162 | includes the converters which used to be part of this distribution | |
163 | plus: | |
164 | two new appplications: | |
165 | * nexpm to draw a pixmap in *any* existing window from | |
166 | Ralph Betza <gnohmon@ssiny.com> | |
167 | * xpmview to display a list of Xpm files from | |
168 | Jean Michel Leon <leon@sophia.inria.fr> | |
169 | ||
170 | a hacky string to pixmap converter, provided by | |
171 | Robert H. Forsman Jr. <thoth@manatee.cis.ufl.edu> | |
172 | ||
173 | The Xpm editor called pixmap will also be part of this contrib. | |
174 | This does not mean it is the best pixmap editor one can find | |
175 | but it is the only one that I know of which tries to handle | |
176 | all the features of this format. | |
177 | ||
178 | ENHANCEMENTS: | |
179 | - the code to build XImage data has been optimized by | |
180 | jules@x.co.uk (Julian Gosnell) | |
181 | the old code is still available when compiling with the | |
182 | -DWITHOUT_SPEEDUPS flag. | |
183 | ||
184 | - closecolor code was not re-entrant | |
185 | - dbl@visual.com (David B. Lewis) | |
186 | - fix gzip filename (*.gz and no longer *.z). | |
187 | - Jason Patterson <jasonp@fitmail.fit.qut.edu.au> | |
188 | - sxpm has 2 new options: | |
189 | -nom to do not display the mask if there is one | |
190 | -cp <color> <pixel> to override a color value with a given | |
191 | pixel, i.e. sxpm plaid.xpm -cp red 4 | |
192 | ||
193 | also the '-s' adn '-p' options have been renamed to '-sc' and '-sp'. | |
194 | ||
195 | - xpm.h defines XpmFormat, XpmVersion, and XpmRevision numbers. | |
196 | ||
197 | BUGS CORRECTED: | |
198 | - closecolor minor fix | |
199 | - Jason Patterson <jasonp@fitmail.fit.qut.edu.au> | |
200 | ||
201 | 3.2g (93/04/26) | |
202 | ||
203 | ENHANCEMENTS: | |
204 | - much faster close colors | |
205 | - piping from/to compressed files now handles GNU's gzip (.z) format | |
206 | - added XpmColorKey attribute - ability to specify which visual's | |
207 | colors to use (ie: now it's possible to read in a pixmap in a | |
208 | color visual, but use the colors specified for monochrome). | |
209 | - added -mono, -grey4, -grey and -color options to sxpm to demonstrate | |
210 | the XpmColorKey attribute. | |
211 | - Jason Patterson <jasonp@fitmail.qut.edu.au> | |
212 | ||
213 | BUGS CORRECTED: | |
214 | - fixed bug where redefining "None" as a pixel stopped mask generation | |
215 | - minor SVR4 defines for <string.h> | |
216 | - fixed annoying closecolor bug related to read/write color cells | |
217 | - fixed minor bug in color value -> pixel overloading | |
218 | - manual updated to include new red/green/blue closeness attributes | |
219 | - Jason Patterson <jasonp@fitmail.qut.edu.au> | |
220 | ||
221 | - the top Imakefile was missing the depend target | |
222 | - sxpm/Imakefile fixed so that -L../lib is set before the standard | |
223 | library location. | |
224 | - Vivek Khera <khera@cs.duke.edu> | |
225 | ||
226 | - lib/xpmP.h now defines bcopy as memcpy for VMS (required by recent | |
227 | versions of VMS) | |
228 | - J. Daniel Smith <dsmith@ann-arbor.applicon.slb.com> | |
229 | ||
230 | - the lib/Imakefile didn't work with X11R4. | |
231 | ||
232 | ||
233 | 3.2f (93/03/17) | |
234 | ||
235 | NEW FEATURES: | |
236 | - the library provides four new functions to deal with Xpm files | |
237 | loaded in memory as single character strings buffers: | |
238 | ||
239 | XpmCreateImageFromBuffer | |
240 | XpmCreatePixmapFromBuffer | |
241 | XpmCreateBufferFromImage | |
242 | XpmCreateBufferFromPixmap | |
243 | ||
244 | - in addition, as a convenience, two functions are provided to copy a | |
245 | file in a buffer and to write a file from a buffer: | |
246 | ||
247 | XpmReadFileToBuffer | |
248 | XpmWriteFileFromBuffer | |
249 | ||
250 | ENHANCEMENTS: | |
251 | - Files are now dispatched in the following sub-directories: | |
252 | lib, sxpm, and doc. | |
253 | - Imakefiles will let you build a shared library as well as the static | |
254 | one (with either X11R4 or X11R5). | |
255 | - The documentation has been ported from LaTeX to FrameMaker and is | |
256 | now included in the distribution in its PostScript form (doc/xpm.ps). | |
257 | Source files are available on request. | |
258 | Also the documentation has been reoreganized and includes a table of | |
259 | contents and an index of the functions (the number of functions | |
260 | increasing this became a requisite). | |
261 | ||
262 | BUGS CORRECTED: | |
263 | - Many warnings have been fixed - patch from Daniel Dardailler | |
264 | daniel@osf.org | |
265 | ||
266 | 3.2e (93/02/05) | |
267 | ||
268 | ENHANCEMENTS: | |
269 | - use XpmMalloc, XpmRealloc, XpmCalloc, and XpmFree which are defines | |
270 | in xpmP.h. This should help people wanting to use their own functions. | |
271 | ||
272 | BUGS CORRECTED: | |
273 | - Intrinsic.h is no longer included. | |
274 | - bzero is defined as memset on SYSV and SVR4. | |
275 | - some memory initialisation bug concerning XpmAttributes. | |
276 | ||
277 | 3.2d (93/01/27) | |
278 | ||
279 | ENHANCEMENTS: | |
280 | - compile on Solaris 2.0 | |
281 | - patch from Clint Jeffery <cjeffery@cs.arizona.edu> | |
282 | ||
283 | BUGS CORRECTED: | |
284 | - shape masks are now set correctly for LSBFirst (Decs). | |
285 | - pixmaps are now set correctly for 2 bit displays (Nexts). | |
286 | - patch from Josef Leherbauer <joe@takeFive.co.at> | |
287 | - isspace was called on getc which fails when EOF is returned. | |
288 | - Marelli Paolo <marelli@colos3.usr.dsi.unimi.it> | |
289 | ||
290 | 3.2c (92/12/29) | |
291 | ||
292 | ENHANCEMENTS: | |
293 | - parsing optimized for single and double characters color | |
294 | - patch originally from Martin Brunecky | |
295 | marbru@build1.auto-trol.com | |
296 | ||
297 | BUGS CORRECTED: | |
298 | - XpmFreeExtensions was calling free on some argument without checking | |
299 | it was not NULL. | |
300 | - strdup was not correctly defined for systems which do not provide | |
301 | it. - Hans-Peter Lichtin <lich@zellweger.ch> | |
302 | - some bug in XpmCrDataFI.c | |
303 | - Sven Delmas garfield@avalanche.cs.tu-berlin.de | |
304 | ||
305 | NOTE: | |
306 | - there is still a bug with the creation of the clipmask on display of | |
307 | depth 2 but I can't find a fix because unfortunately I don't have such | |
308 | a rendering system and nobody gets the time to investigate for me. | |
309 | ||
310 | 3.2b (92/10/19) | |
311 | ||
312 | ENHANCEMENTS: | |
313 | - Create XpmReadFileToData and XpmWriteFileFromData | |
314 | - Dan Greening <dgreen@sti.com> | |
315 | - added "close colors" support and ability to redefine color values | |
316 | as pixels at load time, as well as color names | |
317 | - Jason Patterson <jasonp@fitmail.qut.edu.au> | |
318 | - errors while parsing or allocating colors now revert to other | |
319 | visual defaults, creating pixmap/image as expected, and returning | |
320 | XpmSuccess. The old behaviour of XpmColorError being returned and no | |
321 | pixmap/image being created can be retained by setting the | |
322 | exactColors attribute. | |
323 | - Jason Patterson <jasonp@fitmail.qut.edu.au> | |
324 | ||
325 | BUGS CORRECTED: | |
326 | - SVR4 defines for including <string.h> instead of <strings.h> | |
327 | - Jason Patterson <jasonp@fitmail.qut.edu.au> | |
328 | - attributes->extensions and attributes->nextensions fields were not | |
329 | set correctly when no extensions present in file. | |
330 | - Simon_Scott Cornish <cornish@ecr.mu.oz.au> | |
331 | ||
332 | 3.2a (92/08/17) | |
333 | ||
334 | ENHANCEMENTS: | |
335 | - use the mock lisp hashing function instead of the gnu emacs one, | |
336 | it is faster in some cases and never slower (I've not found any case). | |
337 | ||
338 | BUGS CORRECTED: | |
339 | - function prototypes for ansi compilers. | |
340 | - some memory initialization bugs (purify is just great for this). | |
341 | - empty strings in extensions are now correctly handled. | |
342 | ||
343 | 3.2 (92/07/06) | |
344 | ||
345 | NEW FEATURES: | |
346 | - both format and functions handle extensions data. This allow people | |
347 | to store additional data related to a pixmap. See documentation for | |
348 | detail. | |
349 | - sxpm supports the new option '-c' to use a private colormap. This is | |
350 | useful when displaying pixmaps using a lot of colors. | |
351 | - sxpm supports the new option '-v' (verbose) to get possible | |
352 | extensions print out on standard error. | |
353 | ||
354 | ENHANCEMENTS: | |
355 | - most of the code has been reworked to be improved and thus almost | |
356 | every function is faster. It takes less than 6 seconds of real time on | |
357 | a sun4 to display, with sxpm, a 487x635 pixmap using 213 colors, while | |
358 | it takes 32 seconds with the old library! It takes 18 seconds to | |
359 | display a 1279x1023 screen dump using 14 colors while xwud takes 10 | |
360 | seconds. | |
361 | Of course performance improvements are not always that great, they | |
362 | depend on the size and number of colors but I'm sure everybody will | |
363 | appreciate ;-) | |
364 | I know how to improve it more but this will require changes in the | |
365 | architecture so this is not for now. Some optimizations have been | |
366 | contributed by gregor@kafka.saic.com (gregg hanna) and | |
367 | jnc@csl.biosci.arizona.edu (John N. Calley). | |
368 | - the Imakefile is modified to let you install sxpm - Rainer Klute | |
369 | <klute@irb.informatik.uni-dortmund.de> | |
370 | - xpmP.h declares popen for Sequent platforms - Clinton Jeffery | |
371 | <cjeffery@cs.arizona.edu> | |
372 | - XpmWriteFileFromImage/Pixmap rather than truncating the pixmap name | |
373 | to the first dot changes dots to underscores to get a valid C syntax | |
374 | name. | |
375 | ||
376 | ||
377 | BUGS CORRECTED: | |
378 | - there was a bug in the image creation function for some 24 bits | |
379 | displays. It is fixed. | |
380 | - allocated color pixels are now freed when an error occurs - | |
381 | nusser@dec1.wu-wien.ac.at (Stefan Nusser) | |
382 | ||
383 | CHANGES TO THE DOC: | |
384 | - the documentation describes the new XpmExtension structure and how | |
385 | to use it with read and write functions. | |
386 | ||
387 | 3.1 (92/02/03) | |
388 | ||
389 | ENHANCEMENTS: | |
390 | - sxpm now have more standard options (mainly suggested by | |
391 | Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>): | |
392 | ||
393 | Usage: sxpm [options...] | |
394 | Where options are: | |
395 | ||
396 | [-d host:display] Display to connect to. | |
397 | [-g geom] Geometry of window. | |
398 | [-hints] Set ResizeInc for window. | |
399 | [-icon filename] Set pixmap for iconWindow. | |
400 | [-s symbol_name color_name] Overwrite color defaults. | |
401 | [-p symbol_name pixel_value] Overwrite color defaults. | |
402 | [-plaid] Read the included plaid pixmap. | |
403 | [filename] Read from file 'filename', and from | |
404 | standard input if 'filename' is '-'. | |
405 | [-o filename] Write to file 'filename', and to standard | |
406 | output if 'filename' is '-'. | |
407 | [-nod] Don't display in window. | |
408 | [-rgb filename] Search color names in the rgb text file | |
409 | 'filename'. | |
410 | ||
411 | if no input is specified sxpm reads from stdandard input. | |
412 | ||
413 | ||
414 | - Xpm functions and Ppm converters now deal with multiword colornames. | |
415 | patches from Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>. | |
416 | ||
417 | ||
418 | 3.0 (91/10/03) | |
419 | ||
420 | Functions name and defines have been modified again (sorry for that) | |
421 | as follows: | |
422 | ||
423 | XpmReadPixmapFile XpmReadFileToPixmap | |
424 | XpmWritePixmapFile XpmWriteFileFromPixmap | |
425 | ||
426 | XpmPixmapColorError XpmColorError | |
427 | XpmPixmapSuccess XpmSuccess | |
428 | XpmPixmapOpenFailed XpmOpenFailed | |
429 | XpmPixmapFileInvalid XpmFileInvalid | |
430 | XpmPixmapNoMemory XpmNoMemory | |
431 | XpmPixmapColorFailed XpmColorFailed | |
432 | ||
433 | To update code using Xpm you can use the included shell script called | |
434 | rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0. | |
435 | Old names still valid though. | |
436 | ||
437 | NEW FEATURES: | |
438 | - four new functions to work with images instead of pixmaps: | |
439 | ||
440 | XpmReadFileToImage | |
441 | XpmWriteFileFromImage | |
442 | XpmCreateImageFromData | |
443 | XpmCreateDataFromImage | |
444 | ||
445 | ENHANCEMENTS: | |
446 | Algorithms to create and scan images and pixmaps are based on the | |
447 | MIT's R5 code, thus they are much cleaner than old ones and should | |
448 | avoid any problem with any visual (yes, I trust MIT folks :-) | |
449 | ||
450 | BUGS CORRECTED: | |
451 | Imakefile use INCDIR instead of ROOTDIR. | |
452 | ||
453 | CHANGES TO THE DOC: | |
454 | - the documentation presents the four new functions. | |
455 | ||
456 | 3.0c (91/09/18) | |
457 | ||
458 | In answer to request of people functions, types and defines names have | |
459 | been changed as follows: | |
460 | ||
461 | XCreatePixmapFromData XpmCreatePixmapFromData | |
462 | XCreateDataFromPixmap XpmCreateDataFromPixmap | |
463 | XReadPixmapFile XpmReadPixmapFile | |
464 | XWritePixmapFile XpmWritePixmapFile | |
465 | XFreeXpmAttributes XpmFreeAttributes | |
466 | ||
467 | PixmapColorError XpmPixmapColorError | |
468 | PixmapSuccess XpmPixmapSuccess | |
469 | PixmapOpenFailed XpmPixmapOpenFailed | |
470 | PixmapFileInvalid XpmPixmapFileInvalid | |
471 | PixmapNoMemory XpmPixmapNoMemory | |
472 | PixmapColorFailed XpmPixmapColorFailed | |
473 | ||
474 | ColorSymbol XpmColorSymbol | |
475 | ||
476 | Generally speaking every public name begins with 'Xpm' and every | |
477 | private one with 'xpm'. This should avoid any possible conflict. | |
478 | ||
479 | Some files have also be renamed accordingly. | |
480 | ||
481 | NEW FEATURES: | |
482 | - support for VMS and two new options for sxpm: icon and hints (see | |
483 | manual for details) Richard Hess <rhess%pleione%cimshop@uunet.UU.NET> | |
484 | - DEFINES in Imakefile and Makefile.noXtree allows you to set the | |
485 | following: | |
486 | ||
487 | ZPIPE for un/compressing piped feature (default is on) | |
488 | NEED_STRCASECMP for system which doesn't provide one (default | |
489 | is off) | |
490 | ||
491 | - xpmtoppm.c has is own strstr function which is used if NEED_STRSTR | |
492 | is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy). | |
493 | ||
494 | BUGS CORRECTED: | |
495 | - many bugs have been fixed, especially for ansi compilers - | |
496 | Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and | |
497 | Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET) | |
498 | - parser is again a little more improved | |
499 | ||
500 | 3.0b (91/09/12) | |
501 | ||
502 | This is a complete new version with a new API and where files and | |
503 | structures have been renamed. So this should be taken as a new | |
504 | starting release. | |
505 | This release should be quickly followed by the 3.0 because I'm planning | |
506 | to send it for X11R5 contrib which ends October 5th. | |
507 | ||
508 | NEW FEATURES: | |
509 | - support for transparent color. | |
510 | - support for hotspot. | |
511 | - a new function: XCreateDataFromPixmap to create an XPM data from a | |
512 | pixmap in order to be able to create a new pixmap from this data using | |
513 | the XCreatePixmapFromData function later on. | |
514 | - a new structure: XpmAttributes which replace the XpmInfo structure | |
515 | and which leads to a much simpler API with less arguments. | |
516 | - arguments such as visual, colormap and depth are optionnal, default | |
517 | values are taken if omitted. | |
518 | - parsing and allocating color failures don't simply break anymore. If | |
519 | another default color can be found it is used and a PixmapColorError | |
520 | is returned. In case no color can be found then it breaks and returns | |
521 | PixmapColorFailed. | |
522 | - for this reason the ErrorStatus codes are redefined as follows: | |
523 | ||
524 | null if full success | |
525 | positive if partial success | |
526 | negative if failure | |
527 | ||
528 | with: | |
529 | #define PixmapColorError 1 | |
530 | #define PixmapSuccess 0 | |
531 | #define PixmapOpenFailed -1 | |
532 | #define PixmapFileInvalid -2 | |
533 | #define PixmapNoMemory -3 | |
534 | #define PixmapColorFailed -4 | |
535 | ||
536 | - sxpm prints out a warning when a requested color could not be parsed | |
537 | or alloc'ed, and an error when none has been found. | |
538 | - sxpm handles pixmap with transparent color. For this purpose the | |
539 | plaid_mask.xpm is added to the distribution. | |
540 | ||
541 | BUGS CORRECTED: | |
542 | - I've again improved the memory management. | |
543 | - the parser is also improved. | |
544 | - when writting a pixmap to a file the variable name could be | |
545 | "plaid.xpm" which is not valid in C. Now the extension name is cut off | |
546 | to give "plaid" as variable name. | |
547 | - reading multiple words colornames such as "peach puff" where leading | |
548 | to non readable Xpm files. They are now skipped to have only single | |
549 | word colorname. Lionel Mallet (mallet@ipvpel.unipv.it). | |
550 | - parser was triggered by the "/" character inside string. | |
551 | Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected. | |
552 | - sxpm maps the window only if the option "-nod" is not selected. | |
553 | ||
554 | CHANGES TO THE DOC: | |
555 | - the documentation presents the new API and features. | |
556 | ||
557 | 3.0a (91/04/10) | |
558 | ||
559 | This is an alpha version because it supports the new version of XPM, | |
560 | but the library interface is still the same. Indeed it will change in | |
561 | future release to get rid of obsolete stuff such as the type argument | |
562 | of the XWritePixmapFile function. | |
563 | ||
564 | ******************************* WARNING ********************************* | |
565 | The format is not anymore XPM2, it is XPM version 3 which is XPM2 | |
566 | limited to the C syntax with the key word "XPM" in place of "XPM2 C". | |
567 | The interface library has not changed yet but the type argument of | |
568 | XWritePixmapFile and the type member of XpmInfo are not used anymore. | |
569 | Meanwhile the library which is now called libXpm.a is backward | |
570 | compatible as XPM2 files can be read. But the XWritePixmapFile | |
571 | function only writes out XPM version 3 files. | |
572 | ************************************************************************* | |
573 | ||
574 | NEW FEATURES: | |
575 | - the library doesn't use global variables anymore, thus it should be | |
576 | able to share it. | |
577 | - sxpm has been rewritten on top of Xt, it can be used to convert | |
578 | files from XPM2 to XPM version 3. | |
579 | - xpm1to2c.perl has been upgraded to the new XPM version and renamed | |
580 | as xpm1to3.perl | |
581 | - ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed | |
582 | ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1 | |
583 | of the pbmplus package have been upgraded too. xpmtoppm can thus | |
584 | convert XPM version 1 and 3 to a portable pixmap. These files should | |
585 | replace the original ones which are part of the pbmplus package. See | |
586 | the ppm.README file for more details. | |
587 | - the library contains RCS variables which allows you to get revision | |
588 | numbers with ident (which is part of the RCS package). The Id number | |
589 | is an internal rcs number for my eyes only. The official one is found | |
590 | in Version. | |
591 | ||
592 | BUGS CORRECTED: | |
593 | - the memory management has been much improved in order to avoid | |
594 | memory leaks. | |
595 | - the XImage building algorythm has been changed to support correctly | |
596 | different visual depths. There is special code to handle depths 1, 4, | |
597 | 6, 8, 24, and 32 to build the image and send it in one whack, and | |
598 | other depths are supported by building the image with XPutPixel which | |
599 | is slow but sure. | |
600 | - similar algorithms are used to read pixmaps and write them out. | |
601 | ||
602 | CHANGES TO THE DOC: | |
603 | - the documentation presents the new XPM format. | |
604 | ||
605 | ||
606 | 2.8 (90/12/19) | |
607 | ||
608 | ******************************* WARNING ********************************* | |
609 | Since the last release two structures have been modified and have now | |
610 | bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED. | |
611 | ************************************************************************* | |
612 | ||
613 | NEW FEATURES: | |
614 | - the ColorSymbol struct contains the new member 'pixel' which allow | |
615 | to override default colors by giving a pixel value (in such a case | |
616 | symbol value must be set to NULL), | |
617 | - the XpmInfo struct contains the new member 'rgb_fname' in which one | |
618 | can specify an rgb text file name while writing a pixmap with the | |
619 | XWritePixmapFile function (otherwise this member should be set to | |
620 | NULL). This way colorname will be searched and written out if found | |
621 | instead of the RGB value, | |
622 | - Imakefile originally provided by stolcke@ICSI.Berkeley.EDU, | |
623 | - the old Makefile is now distributed as Makefile.noXtree and presents | |
624 | install targets, | |
625 | - the demo application is renamed sxpm (Show XPM), creates a window of | |
626 | the size of the pixmap if no geometry is specified, prints out | |
627 | messages instead of status when an error occurs, handles the new | |
628 | option -p for overriding colors by giving a pixel value (not really | |
629 | useful but is just here to show this new feature), handles the new | |
630 | option -rgb for specifying an rgb text file, and ends on | |
631 | keypress as buttonpress, | |
632 | - defines for SYSV have been provided by Paul Breslaw | |
633 | <paul@mecazh.uucp>, | |
634 | - the distribution includes a new directory called converters which | |
635 | contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2 | |
636 | converter provided by Paul Breslaw who upgraded the original ppmtoxpm | |
637 | written by Mark W. Snitily <mark@zok.uucp>. | |
638 | ||
639 | CHANGES TO THE DOC: | |
640 | - this file is created and will give old users a quick reference to | |
641 | changes made from one release to the next one, | |
642 | - documentation is changed to present the new ColorSymbol structure | |
643 | and the way to override colors by giving a pixel value, and to present | |
644 | the new XpmInfo structure and how to use it, | |
645 | - a man page for sxpm is added to the distrib, | |
646 | - the README file talks about sxpm and no more demo, and have | |
647 | reference to the different converters. | |
648 | ||
649 | 2.7 (90/11/12) | |
650 | ||
651 | NEW FEATURES: | |
652 | - XReadPixmapFile reads from stdin if filename is NULL, | |
653 | - XWritePixmapFile writes to stdin if filename is NULL, | |
654 | - the demo application handles the new option -nod for no displaying | |
655 | the pixmap in a window (useful when used as converter). | |
656 | ||
657 | CHANGES TO THE DOC: | |
658 | - documentation about the new feature. | |
659 | ||
660 | 2.6 (90/10/29) | |
661 | ||
662 | NEW FEATURES: | |
663 | - from nazgul@alphalpha.com (Kee Hinckley): changes to make the | |
664 | library usable as C++ code, and on Apollo without any warning. | |
665 | ||
666 | BUGS CORRECTED: | |
667 | - from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was | |
668 | declaring XWritePixmapFile as taking in arg a Pixmap pointer instead | |
669 | of a Pixmap. | |
670 | ||
671 | 2.5 (90/10/17) | |
672 | ||
673 | BUGS CORRECTED: | |
674 | - XWritePixmapFile was not closing the file while ending normaly. | |
675 | ||
676 | 2.4 (90/09/06) | |
677 | ||
678 | NEW FEATURES: | |
679 | - XReadPixmapFile reads from a piped uncompress if the given filename | |
680 | ends by .Z or if filename.Z exists, | |
681 | - XWritePixmapFile writes to a piped compress if the given filename | |
682 | ends by .Z. | |
683 | ||
684 | BUGS CORRECTED: | |
685 | - demo now deals with window manager. | |
686 | ||
687 | CHANGES TO THE DOC: | |
688 | - documentation about compressed files management. | |
689 | ||
690 | 2.3 (90/08/30) | |
691 | ||
692 | BUGS CORRECTED: | |
693 | - handle monochrom display correctly, | |
694 | - comments can be empty. | |
695 | ||
696 | 2.2 (90/08/27) | |
697 | ||
698 | BUGS CORRECTED: | |
699 | - when reading some invalid free was dumping core on some machine. | |
700 | ||
701 | 2.1 (90/08/24) | |
702 | ||
703 | First distribution of XPM2. | |
704 |