home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / src / xpm / doc / CHANGES next >
Text File  |  2000-07-29  |  16KB  |  423 lines

  1. /* Copyright 1990-92 GROUPE BULL -- See license conditions in file COPYRIGHT */
  2. /**************************************************************************\
  3. *                                        *
  4. *              HISTORY of user-visible changes               *
  5. *                                        *
  6. \**************************************************************************/
  7.  
  8. 3.2c        (92/12/29)
  9.  
  10.     ENHANCEMENTS:
  11.         - parsing optimized for single and double characters color
  12.         - patch originally from Martin Brunecky 
  13.                        marbru@build1.auto-trol.com
  14.  
  15.     BUGS CORRECTED:
  16.     - XpmFreeExtensions was calling free on some argument without checking
  17.     it was not NULL.
  18.     - strdup was not correctly defined for systems which do not provide
  19.     it.    - Hans-Peter Lichtin <lich@zellweger.ch>
  20.     - some bug in XpmCrDataFI.c
  21.             - Sven Delmas garfield@avalanche.cs.tu-berlin.de
  22.  
  23.     NOTE:
  24.         - there is still a bug with the creation of the clipmask on display of
  25.     depth 2 but I can't find a fix because unfortunately I don't have such
  26.     a rendering system and nobody gets the time to investigate for me.
  27.  
  28. 3.2b        (92/10/19)
  29.  
  30.     ENHANCEMENTS:
  31.     - Create XpmReadFileToData and XpmWriteFileFromData
  32.         - Dan Greening <dgreen@sti.com>
  33.         - added "close colors" support and ability to redefine color values
  34.       as pixels at load time, as well as color names
  35.         - Jason Patterson <jasonp@fitmail.qut.edu.au>
  36.     - errors while parsing or allocating colors now revert to other
  37.       visual defaults, creating pixmap/image as expected, and returning
  38.       XpmSuccess. The old behaviour of XpmColorError being returned and no
  39.       pixmap/image being created can be retained by setting the
  40.       exactColors attribute.
  41.         - Jason Patterson <jasonp@fitmail.qut.edu.au>
  42.  
  43.     BUGS CORRECTED:
  44.     - SVR4 defines for including <string.h> instead of <strings.h>
  45.         - Jason Patterson <jasonp@fitmail.qut.edu.au>
  46.     - attributes->extensions and attributes->nextensions fields were not 
  47.       set correctly when no extensions present in file.
  48.         - Simon_Scott Cornish <cornish@ecr.mu.oz.au>
  49.  
  50. 3.2a        (92/08/17)
  51.  
  52.     ENHANCEMENTS:
  53.         - use the mock lisp hashing function instead of the gnu emacs one,
  54.     it is faster in some cases and never slower (I've not found any case).
  55.  
  56.     BUGS CORRECTED:
  57.     - function prototypes for ansi compilers.
  58.     - some memory initialization bugs (purify is just great for this).
  59.     - empty strings in extensions are now correctly handled.
  60.  
  61. 3.2        (92/07/06)
  62.  
  63.     NEW FEATURES:
  64.     - both format and functions handle extensions data. This allow people
  65.     to store additional data related to a pixmap. See documentation for
  66.     detail.
  67.     - sxpm supports the new option '-c' to use a private colormap. This is
  68.     useful when displaying pixmaps using a lot of colors.
  69.     - sxpm supports the new option '-v' (verbose) to get possible
  70.     extensions print out on standard error.
  71.  
  72.     ENHANCEMENTS:
  73.         - most of the code has been reworked to be improved and thus almost
  74.     every function is faster. It takes less than 6 seconds of real time on
  75.     a sun4 to display, with sxpm, a 487x635 pixmap using 213 colors, while
  76.     it takes 32 seconds with the old library! It takes 18 seconds to
  77.     display a 1279x1023 screen dump using 14 colors while xwud takes 10
  78.     seconds.
  79.     Of course performance improvements are not always that great, they
  80.     depend on the size and number of colors but I'm sure everybody will
  81.     appreciate ;-)
  82.     I know how to improve it more but this will require changes in the
  83.     architecture so this is not for now. Some optimizations have been
  84.     contributed by gregor@kafka.saic.com (gregg hanna) and
  85.     jnc@csl.biosci.arizona.edu (John N. Calley).
  86.     - the Imakefile is modified to let you install sxpm - Rainer Klute
  87.            <klute@irb.informatik.uni-dortmund.de>
  88.     - xpmP.h declares popen for Sequent platforms - Clinton Jeffery
  89.        <cjeffery@cs.arizona.edu>
  90.     - XpmWriteFileFromImage/Pixmap rather than truncating the pixmap name
  91.     to the first dot changes dots to underscores to get a valid C syntax
  92.     name.
  93.  
  94.  
  95.     BUGS CORRECTED:
  96.     - there was a bug in the image creation function for some 24 bits
  97.     displays. It is fixed.
  98.     - allocated color pixels are now freed when an error occurs -
  99.        nusser@dec1.wu-wien.ac.at (Stefan Nusser)
  100.  
  101.     CHANGES TO THE DOC:
  102.     - the documentation describes the new XpmExtension structure and how
  103.     to use it with read and write functions.
  104.  
  105. 3.1        (92/02/03)
  106.  
  107.     ENHANCEMENTS:
  108.         - sxpm now have more standard options (mainly suggested by 
  109.     Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>):
  110.  
  111.     Usage:  sxpm [options...]
  112.     Where options are:
  113.  
  114.     [-d host:display]            Display to connect to.
  115.     [-g geom]                    Geometry of window.
  116.     [-hints]                     Set ResizeInc for window.
  117.     [-icon filename]             Set pixmap for iconWindow.
  118.     [-s symbol_name color_name]  Overwrite color defaults.
  119.     [-p symbol_name pixel_value] Overwrite color defaults.
  120.     [-plaid]                     Read the included plaid pixmap.
  121.     [filename]                   Read from file 'filename', and from
  122.                      standard input if 'filename' is '-'.
  123.     [-o filename]                Write to file 'filename', and to standard
  124.                      output if 'filename' is '-'.
  125.     [-nod]                       Don't display in window.
  126.     [-rgb filename]              Search color names in the rgb text file
  127.                      'filename'.
  128.  
  129.     if no input is specified sxpm reads from stdandard input.
  130.  
  131.  
  132.     - Xpm functions and Ppm converters now deal with multiword colornames.
  133.       patches from Rainer Sinkwitz <sinkwitz@ifi.unizh.ch>.
  134.  
  135.  
  136. 3.0        (91/10/03)
  137.  
  138.     Functions name and defines have been modified again (sorry for that)
  139.     as follows:
  140.  
  141.          XpmReadPixmapFile    XpmReadFileToPixmap
  142.          XpmWritePixmapFile   XpmWriteFileFromPixmap
  143.  
  144.          XpmPixmapColorError  XpmColorError
  145.          XpmPixmapSuccess     XpmSuccess
  146.          XpmPixmapOpenFailed  XpmOpenFailed
  147.          XpmPixmapFileInvalid XpmFileInvalid
  148.          XpmPixmapNoMemory    XpmNoMemory
  149.          XpmPixmapColorFailed XpmColorFailed
  150.  
  151.     To update code using Xpm you can use the included shell script called
  152.     rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0.
  153.     Old names still valid though.
  154.  
  155.     NEW FEATURES:
  156.     - four new functions to work with images instead of pixmaps:
  157.  
  158.          XpmReadFileToImage
  159.          XpmWriteFileFromImage
  160.          XpmCreateImageFromData
  161.          XpmCreateDataFromImage
  162.  
  163.     ENHANCEMENTS:
  164.         Algorithms to create and scan images and pixmaps are based on the
  165.     MIT's R5 code, thus they are much cleaner than old ones and should
  166.     avoid any problem with any visual (yes, I trust MIT folks :-)
  167.  
  168.     BUGS CORRECTED:
  169.     Imakefile use INCDIR instead of ROOTDIR.
  170.  
  171.     CHANGES TO THE DOC:
  172.     - the documentation presents the four new functions.
  173.  
  174. 3.0c        (91/09/18)
  175.  
  176.     In answer to request of people functions, types and defines names have
  177.     been changed as follows:
  178.  
  179.          XCreatePixmapFromData     XpmCreatePixmapFromData
  180.          XCreateDataFromPixmap     XpmCreateDataFromPixmap
  181.          XReadPixmapFile         XpmReadPixmapFile
  182.          XWritePixmapFile         XpmWritePixmapFile
  183.          XFreeXpmAttributes         XpmFreeAttributes
  184.  
  185.          PixmapColorError         XpmPixmapColorError
  186.          PixmapSuccess         XpmPixmapSuccess
  187.          PixmapOpenFailed         XpmPixmapOpenFailed
  188.          PixmapFileInvalid         XpmPixmapFileInvalid
  189.          PixmapNoMemory         XpmPixmapNoMemory
  190.          PixmapColorFailed         XpmPixmapColorFailed
  191.  
  192.          ColorSymbol         XpmColorSymbol
  193.  
  194.     Generally speaking every public name begins with 'Xpm' and every
  195.     private one with 'xpm'. This should avoid any possible conflict.
  196.  
  197.     Some files have also be renamed accordingly.
  198.  
  199.     NEW FEATURES:
  200.     - support for VMS and two new options for sxpm: icon and hints (see
  201.     manual for details) Richard Hess <rhess%pleione%cimshop@uunet.UU.NET>
  202.     - DEFINES in Imakefile and Makefile.noXtree allows you to set the
  203.     following:
  204.  
  205.              ZPIPE for un/compressing piped feature (default is on)
  206.          NEED_STRCASECMP for system which doesn't provide one (default
  207.                  is off)
  208.  
  209.     - xpmtoppm.c has is own strstr function which is used if NEED_STRSTR
  210.     is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy).
  211.     
  212.     BUGS CORRECTED:
  213.     - many bugs have been fixed, especially for ansi compilers -
  214.            Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and
  215.            Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET)
  216.     - parser is again a little more improved
  217.  
  218. 3.0b        (91/09/12)
  219.  
  220.     This is a complete new version with a new API and where files and
  221.     structures have been renamed. So this should be taken as a new
  222.     starting release.
  223.     This release should be quickly followed by the 3.0 because I'm planning
  224.     to send it for X11R5 contrib which ends October 5th.
  225.  
  226.     NEW FEATURES:
  227.     - support for transparent color.
  228.     - support for hotspot.
  229.     - a new function: XCreateDataFromPixmap to create an XPM data from a
  230.     pixmap in order to be able to create a new pixmap from this data using
  231.     the XCreatePixmapFromData function later on.
  232.     - a new structure: XpmAttributes which replace the XpmInfo structure
  233.     and which leads to a much simpler API with less arguments.
  234.     - arguments such as visual, colormap and depth are optionnal, default
  235.     values are taken if omitted.
  236.     - parsing and allocating color failures don't simply break anymore. If
  237.     another default color can be found it is used and a PixmapColorError
  238.     is returned. In case no color can be found then it breaks and returns
  239.     PixmapColorFailed.
  240.     - for this reason the ErrorStatus codes are redefined as follows:
  241.  
  242.            null     if full success
  243.            positive if partial success
  244.            negative if failure
  245.  
  246.     with:
  247.         #define PixmapColorError    1
  248.         #define PixmapSuccess       0
  249.         #define PixmapOpenFailed   -1
  250.         #define PixmapFileInvalid  -2
  251.         #define PixmapNoMemory     -3
  252.         #define PixmapColorFailed  -4
  253.  
  254.     - sxpm prints out a warning when a requested color could not be parsed
  255.     or alloc'ed, and an error when none has been found.
  256.     - sxpm handles pixmap with transparent color. For this purpose the
  257.     plaid_mask.xpm is added to the distribution.
  258.  
  259.     BUGS CORRECTED:
  260.     - I've again improved the memory management.
  261.     - the parser is also improved.
  262.     - when writting a pixmap to a file the variable name could be
  263.     "plaid.xpm" which is not valid in C. Now the extension name is cut off
  264.     to give "plaid" as variable name.
  265.     - reading multiple words colornames such as "peach puff" where leading
  266.     to non readable Xpm files. They are now skipped to have only single
  267.     word colorname. Lionel Mallet (mallet@ipvpel.unipv.it).
  268.     - parser was triggered by the "/" character inside string.
  269.     Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected.
  270.     - sxpm maps the window only if the option "-nod" is not selected. 
  271.  
  272.     CHANGES TO THE DOC:
  273.     - the documentation presents the new API and features.
  274.  
  275. 3.0a        (91/04/10)
  276.  
  277.     This is an alpha version because it supports the new version of XPM,
  278.     but the library interface is still the same. Indeed it will change in
  279.     future release to get rid of obsolete stuff such as the type argument
  280.     of the XWritePixmapFile function.
  281.  
  282.     ******************************* WARNING *********************************
  283.     The format is not anymore XPM2, it is XPM version 3 which is XPM2
  284.     limited to the C syntax with the key word "XPM" in place of "XPM2 C".
  285.     The interface library has not changed yet but the type argument of
  286.     XWritePixmapFile and the type member of XpmInfo are not used anymore.
  287.     Meanwhile the library which is now called libXpm.a is backward
  288.     compatible as XPM2 files can be read. But the XWritePixmapFile
  289.     function only writes out XPM version 3 files.
  290.     *************************************************************************
  291.  
  292.     NEW FEATURES:
  293.     - the library doesn't use global variables anymore, thus it should be
  294.     able to share it.
  295.     - sxpm has been rewritten on top of Xt, it can be used to convert
  296.     files from XPM2 to XPM version 3.
  297.     - xpm1to2c.perl has been upgraded to the new XPM version and renamed
  298.     as xpm1to3.perl
  299.     - ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed
  300.     ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1
  301.     of the pbmplus package have been upgraded too. xpmtoppm can thus
  302.     convert XPM version 1 and 3 to a portable pixmap. These files should
  303.     replace the original ones which are part of the pbmplus package. See
  304.     the ppm.README file for more details.
  305.     - the library contains RCS variables which allows you to get revision
  306.     numbers with ident (which is part of the RCS package). The Id number
  307.     is an internal rcs number for my eyes only. The official one is found
  308.     in Version.
  309.  
  310.     BUGS CORRECTED:
  311.     - the memory management has been much improved in order to avoid
  312.     memory leaks.
  313.     - the XImage building algorythm has been changed to support correctly
  314.     different visual depths. There is special code to handle depths 1, 4,
  315.     6, 8, 24, and 32 to build the image and send it in one whack, and
  316.     other depths are supported by building the image with XPutPixel which
  317.     is slow but sure.
  318.     - similar algorithms are used to read pixmaps and write them out.
  319.  
  320.     CHANGES TO THE DOC:
  321.     - the documentation presents the new XPM format.
  322.  
  323.  
  324. 2.8        (90/12/19)
  325.  
  326.     ******************************* WARNING *********************************
  327.         Since the last release two structures have been modified and have now
  328.     bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED.
  329.     *************************************************************************
  330.  
  331.     NEW FEATURES:
  332.     - the ColorSymbol struct contains the new member 'pixel' which allow
  333.     to override default colors by giving a pixel value (in such a case
  334.     symbol value must be set to NULL),
  335.     - the XpmInfo struct contains the new member 'rgb_fname' in which one
  336.     can specify an rgb text file name while writing a pixmap with the 
  337.     XWritePixmapFile function (otherwise this member should be set to
  338.     NULL). This way colorname will be searched and written out if found
  339.     instead of the RGB value,
  340.     - Imakefile originally provided by stolcke@ICSI.Berkeley.EDU,
  341.     - the old Makefile is now distributed as Makefile.noXtree and presents
  342.     install targets,
  343.     - the demo application is renamed sxpm (Show XPM), creates a window of
  344.     the size of the pixmap if no geometry is specified, prints out
  345.     messages instead of status when an error occurs, handles the new
  346.     option -p for overriding colors by giving a pixel value (not really
  347.     useful but is just here to show this new feature), handles the new
  348.     option -rgb for specifying an rgb text file, and ends on
  349.     keypress as buttonpress,
  350.     - defines for SYSV have been provided by Paul Breslaw
  351.     <paul@mecazh.uucp>,
  352.     - the distribution includes a new directory called converters which
  353.     contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2
  354.     converter provided by Paul Breslaw who upgraded the original ppmtoxpm
  355.     written by Mark W. Snitily <mark@zok.uucp>.
  356.  
  357.     CHANGES TO THE DOC:
  358.     - this file is created and will give old users a quick reference to
  359.     changes made from one release to the next one,
  360.     - documentation is changed to present the new ColorSymbol structure
  361.     and the way to override colors by giving a pixel value, and to present
  362.     the new XpmInfo structure and how to use it,
  363.     - a man page for sxpm is added to the distrib,
  364.     - the README file talks about sxpm and no more demo, and have
  365.     reference to the different converters.
  366.  
  367. 2.7        (90/11/12)
  368.  
  369.     NEW FEATURES:
  370.     - XReadPixmapFile reads from stdin if filename is NULL,
  371.     - XWritePixmapFile writes to stdin if filename is NULL,
  372.     - the demo application handles the new option -nod for no displaying
  373.     the pixmap in a window (useful when used as converter).
  374.  
  375.     CHANGES TO THE DOC:
  376.     - documentation about the new feature.
  377.  
  378. 2.6        (90/10/29)
  379.  
  380.     NEW FEATURES:
  381.     - from nazgul@alphalpha.com (Kee Hinckley): changes to make the
  382.     library usable as C++ code, and on Apollo without any warning.
  383.  
  384.     BUGS CORRECTED:
  385.     - from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was
  386.     declaring XWritePixmapFile as taking in arg a Pixmap pointer instead
  387.     of a Pixmap.
  388.  
  389. 2.5        (90/10/17)
  390.  
  391.     BUGS CORRECTED:
  392.     - XWritePixmapFile was not closing the file while ending normaly.
  393.  
  394. 2.4        (90/09/06)
  395.  
  396.     NEW FEATURES:
  397.     - XReadPixmapFile reads from a piped uncompress if the given filename
  398.     ends by .Z or if filename.Z exists,
  399.     - XWritePixmapFile writes to a piped compress if the given filename
  400.     ends by .Z.
  401.  
  402.     BUGS CORRECTED:
  403.     - demo now deals with window manager.
  404.  
  405.     CHANGES TO THE DOC:
  406.     - documentation about compressed files management.
  407.  
  408. 2.3        (90/08/30)
  409.  
  410.     BUGS CORRECTED:
  411.     - handle monochrom display correctly,
  412.     - comments can be empty.
  413.  
  414. 2.2        (90/08/27)
  415.  
  416.     BUGS CORRECTED:
  417.     - when reading some invalid free was dumping core on some machine.
  418.  
  419. 2.1        (90/08/24)
  420.  
  421.     First distribution of XPM2.
  422.  
  423.