]>
Commit | Line | Data |
---|---|---|
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 | ||
32 | 3.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 | ||
46 | 3.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 | ||
70 | 3.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 | ||
97 | 3.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 | ||
182 | 3.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 | ||
211 | 3.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 | ||
227 | 3.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 | ||
243 | 3.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 | ||
264 | 3.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 | ||
285 | 3.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 | ||
311 | 3.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 | ||
318 | 3.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 | ||
382 | 3.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 | ||
404 | 3.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 | ||
454 | 3.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 | ||
486 | 3.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 | ||
519 | 3.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 | ||
530 | 3.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 | ||
543 | 3.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 | ||
563 | 3.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 | ||
585 | 3.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 | ||
596 | 3.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 | ||
640 | 3.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 | ||
671 | 3.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 | ||
709 | 3.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 | ||
753 | 3.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 | ||
810 | 3.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 | ||
859 | 2.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 | ||
902 | 2.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 | ||
913 | 2.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 | ||
924 | 2.5 (90/10/17) | |
925 | ||
926 | BUGS CORRECTED: | |
927 | - XWritePixmapFile was not closing the file while ending normally. | |
928 | ||
929 | 2.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 | ||
943 | 2.3 (90/08/30) | |
944 | ||
945 | BUGS CORRECTED: | |
946 | - handle monochrome display correctly, | |
947 | - comments can be empty. | |
948 | ||
949 | 2.2 (90/08/27) | |
950 | ||
951 | BUGS CORRECTED: | |
952 | - when reading some invalid free was dumping core on some machine. | |
953 | ||
954 | 2.1 (90/08/24) | |
955 | ||
956 | First distribution of XPM2. | |
957 |