earlybrowserreborn - Rev 1

Subversion Repositories:
/* Copyright 1990,91 GROUPE BULL -- See licence conditions in file COPYRIGHT */
*                                                                          *
*                       HISTORY of user-visible changes                    *
*                                                                          *

3.0             (91/10/03)

        Functions name and defines have been modified again (sorry for that)
        as follows:

             XpmReadPixmapFile    XpmReadFileToPixmap
             XpmWritePixmapFile   XpmWriteFileFromPixmap

             XpmPixmapColorError  XpmColorError
             XpmPixmapSuccess     XpmSuccess
             XpmPixmapOpenFailed  XpmOpenFailed
             XpmPixmapFileInvalid XpmFileInvalid
             XpmPixmapNoMemory    XpmNoMemory
             XpmPixmapColorFailed XpmColorFailed

        To update code using Xpm you can use the included shell script called
        rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0.
        Old names still valid though.

        - four new functions to work with images instead of pixmaps:


        Algorithms to create and scan images and pixmaps are based on the
        MIT's R5 code, thus they are much cleaner than old ones and should
        avoid any problem with any visual (yes, I trust MIT folks :-)

        Imakefile use INCDIR instead of ROOTDIR.

        - the documentation presents the four new functions.

3.0c            (91/09/18)

        In answer to request of people functions, types and defines names have
        been changed as follows:

             XCreatePixmapFromData       XpmCreatePixmapFromData
             XCreateDataFromPixmap       XpmCreateDataFromPixmap
             XReadPixmapFile             XpmReadPixmapFile
             XWritePixmapFile            XpmWritePixmapFile
             XFreeXpmAttributes          XpmFreeAttributes

             PixmapColorError            XpmPixmapColorError
             PixmapSuccess               XpmPixmapSuccess
             PixmapOpenFailed            XpmPixmapOpenFailed
             PixmapFileInvalid           XpmPixmapFileInvalid
             PixmapNoMemory              XpmPixmapNoMemory
             PixmapColorFailed           XpmPixmapColorFailed

             ColorSymbol                 XpmColorSymbol

        Generally speaking every public name begins with 'Xpm' and every
        private one with 'xpm'. This should avoid any possible conflict.

        Some files have also be renamed accordingly.

        - support for VMS and two new options for sxpm: icon and hints (see
        manual for details) Richard Hess <rhess%pleione%cimshop@uunet.UU.NET>
        - DEFINES in Imakefile and Makefile.noXtree allows you to set the

                 ZPIPE for un/compressing piped feature (default is on)
                 NEED_STRCASECMP for system which doesn't provide one (default
                                 is off)

        - xpmtoppm.c has is own strstr function which is used if NEED_STRSTR
        is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy).
        - many bugs have been fixed, especially for ansi compilers -
               Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and
               Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET)
        - parser is again a little more improved

3.0b            (91/09/12)

        This is a complete new version with a new API and where files and
        structures have been renamed. So this should be taken as a new
        starting release.
        This release should be quickly followed by the 3.0 because I'm planning
        to send it for X11R5 contrib which ends October 5th.

        - support for transparent color.
        - support for hotspot.
        - a new function: XCreateDataFromPixmap to create an XPM data from a
        pixmap in order to be able to create a new pixmap from this data using
        the XCreatePixmapFromData function later on.
        - a new structure: XpmAttributes which replace the XpmInfo structure
        and which leads to a much simpler API with less arguments.
        - arguments such as visual, colormap and depth are optionnal, default
        values are taken if omitted.
        - parsing and allocating color failures don't simply break anymore. If
        another default color can be found it is used and a PixmapColorError
        is returned. In case no color can be found then it breaks and returns
        - for this reason the ErrorStatus codes are redefined as follows:

                   null     if full success
                   positive if partial success
                   negative if failure

                #define PixmapColorError    1
                #define PixmapSuccess       0
                #define PixmapOpenFailed   -1
                #define PixmapFileInvalid  -2
                #define PixmapNoMemory     -3
                #define PixmapColorFailed  -4

        - sxpm prints out a warning when a requested color could not be parsed
        or alloc'ed, and an error when none has been found.
        - sxpm handles pixmap with transparent color. For this purpose the
        plaid_mask.xpm is added to the distribution.

        - I've again improved the memory management.
        - the parser is also improved.
        - when writting a pixmap to a file the variable name could be
        "plaid.xpm" which is not valid in C. Now the extension name is cut off
        to give "plaid" as variable name.
        - reading multiple words colornames such as "peach puff" where leading
        to non readable Xpm files. They are now skipped to have only single
        word colorname. Lionel Mallet (mallet@ipvpel.unipv.it).
        - parser was triggered by the "/" character inside string.
        Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected.
        - sxpm maps the window only if the option "-nod" is not selected. 

        - the documentation presents the new API and features.

3.0a            (91/04/10)

        This is an alpha version because it supports the new version of XPM,
        but the library interface is still the same. Indeed it will change in
        future release to get rid of obsolete stuff such as the type argument
        of the XWritePixmapFile function.

    ******************************* WARNING *********************************
        The format is not anymore XPM2, it is XPM version 3 which is XPM2
        limited to the C syntax with the key word "XPM" in place of "XPM2 C".
        The interface library has not changed yet but the type argument of
        XWritePixmapFile and the type member of XpmInfo are not used anymore.
        Meanwhile the library which is now called libXpm.a is backward
        compatible as XPM2 files can be read. But the XWritePixmapFile
        function only writes out XPM version 3 files.

        - the library doesn't use global variables anymore, thus it should be
        able to share it.
        - sxpm has been rewritten on top of Xt, it can be used to convert
        files from XPM2 to XPM version 3.
        - xpm1to2c.perl has been upgraded to the new XPM version and renamed
        as xpm1to3.perl
        - ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed
        ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1
        of the pbmplus package have been upgraded too. xpmtoppm can thus
        convert XPM version 1 and 3 to a portable pixmap. These files should
        replace the original ones which are part of the pbmplus package. See
        the ppm.README file for more details.
        - the library contains RCS variables which allows you to get revision
        numbers with ident (which is part of the RCS package). The Id number
        is an internal rcs number for my eyes only. The official one is found
        in Version.

        - the memory management has been much improved in order to avoid
        memory leaks.
        - the XImage building algorythm has been changed to support correctly
        different visual depths. There is special code to handle depths 1, 4,
        6, 8, 24, and 32 to build the image and send it in one whack, and
        other depths are supported by building the image with XPutPixel which
        is slow but sure.
        - similar algorithms are used to read pixmaps and write them out.

        - the documentation presents the new XPM format.

2.8             (90/12/19)

    ******************************* WARNING *********************************
        Since the last release two structures have been modified and have now
        bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED.

        - the ColorSymbol struct contains the new member 'pixel' which allow
        to override default colors by giving a pixel value (in such a case
        symbol value must be set to NULL),
        - the XpmInfo struct contains the new member 'rgb_fname' in which one
        can specify an rgb text file name while writing a pixmap with the 
        XWritePixmapFile function (otherwise this member should be set to
        NULL). This way colorname will be searched and written out if found
        instead of the RGB value,
        - Imakefile originally provided by stolcke@ICSI.Berkeley.EDU,
        - the old Makefile is now distributed as Makefile.noXtree and presents
        install targets,
        - the demo application is renamed sxpm (Show XPM), creates a window of
        the size of the pixmap if no geometry is specified, prints out
        messages instead of status when an error occurs, handles the new
        option -p for overriding colors by giving a pixel value (not really
        useful but is just here to show this new feature), handles the new
        option -rgb for specifying an rgb text file, and ends on
        keypress as buttonpress,
        - defines for SYSV have been provided by Paul Breslaw
        - the distribution includes a new directory called converters which
        contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2
        converter provided by Paul Breslaw who upgraded the original ppmtoxpm
        written by Mark W. Snitily <mark@zok.uucp>.

        - this file is created and will give old users a quick reference to
        changes made from one release to the next one,
        - documentation is changed to present the new ColorSymbol structure
        and the way to override colors by giving a pixel value, and to present
        the new XpmInfo structure and how to use it,
        - a man page for sxpm is added to the distrib,
        - the README file talks about sxpm and no more demo, and have
        reference to the different converters.

2.7             (90/11/12)

        - XReadPixmapFile reads from stdin if filename is NULL,
        - XWritePixmapFile writes to stdin if filename is NULL,
        - the demo application handles the new option -nod for no displaying
        the pixmap in a window (useful when used as converter).

        - documentation about the new feature.

2.6             (90/10/29)

        - from nazgul@alphalpha.com (Kee Hinckley): changes to make the
        library usable as C++ code, and on Apollo without any warning.

        - from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was
        declaring XWritePixmapFile as taking in arg a Pixmap pointer instead
        of a Pixmap.

2.5             (90/10/17)

        - XWritePixmapFile was not closing the file while ending normaly.

2.4             (90/09/06)

        - XReadPixmapFile reads from a piped uncompress if the given filename
        ends by .Z or if filename.Z exists,
        - XWritePixmapFile writes to a piped compress if the given filename
        ends by .Z.

        - demo now deals with window manager.

        - documentation about compressed files management.

2.3             (90/08/30)

        - handle monochrom display correctly,
        - comments can be empty.

2.2             (90/08/27)

        - when reading some invalid free was dumping core on some machine.

2.1             (90/08/24)

    First distribution of XPM2.