"Fossies" - the Fresh Open Source Software Archive

Member "giflib-5.2.1/NEWS" (24 Jun 2019, 30622 Bytes) of package /linux/misc/giflib-5.2.1.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "NEWS": 5.2.0_vs_5.2.1.

    1 			GIFLIB NEWS
    2 
    3 
    4 Version 5.2.1
    5 ==============
    6 
    7 This is the "Maybe I shouldn't have dome a release while imn surgical recovery" release.
    8 
    9 * In gifbuild.c, avoid a core dump on no color map.
   10 
   11 * Restore inadvertently removed library version numbers in Makefile.
   12 
   13 Version 5.2.0
   14 =============
   15 
   16 The undocumented and deprecated GifQuantizeBuffer() entry point
   17 has been moved to the util library to reduce libgif size and attack
   18 surface. Applications needing this function are couraged to link the
   19 util library or make their own copy.
   20 
   21 The following obsolete utility programs are no longer installed:
   22 gifecho, giffilter, gifinto, gifsponge. These were either installed in
   23 error or have been obsolesced by modern image-transformmation tools
   24 like ImageMagick convert. They may be removed entirely in a future
   25 release.
   26 
   27 * Address SourceForge issue #136: Stack-buffer-overflow in gifcolor.c:84
   28 
   29 * Address SF bug #134: Giflib fails to slurp significant number of gifs
   30 
   31 * Apply SPDX convention for license tagging.
   32 
   33 Version 5.1.9
   34 =============
   35 
   36 The documentation directory now includes an HTMlified version of the
   37 GIF89 standard, and a more detailed description of how LZW compression
   38 is applied to GIFs.
   39 
   40 * Address SF bug #129: The latest version of giflib cannot be build on windows.
   41 
   42 * Address SF bug #126: Cannot compile giflib using c89
   43 
   44 Version 5.1.8
   45 =============
   46 
   47 * Address SF bug #119: MemorySanitizer: FPE on unknown address
   48 
   49 * Address SF bug #125: 5.1.7: xmlto is still required for tarball
   50 
   51 * Address SF bug #124: 5.1.7: ar invocation is not crosscompile compatible
   52 
   53 * Address SF bug #122: 5.1.7 installs manpages to wrong directory
   54 
   55 * Address SF bug #121: make: getversion: Command not found
   56 
   57 * Address SF bug #120: 5.1.7 does not build a proper library - no 
   58 
   59 Version 5.1.7
   60 =============
   61 
   62 Correct a minor packaging error (superfluous symlinks) in the 5.1.6 tarballs.
   63 
   64 Version 5.1.6
   65 =============
   66 
   67 Build Fixes
   68 -----------
   69 
   70 Fix library installation in the Makefile.
   71 
   72 Version 5.1.5
   73 =============
   74 
   75 Code Fixes
   76 ----------
   77 
   78 * Fix SF bug #114: Null dereferences in main() of gifclrmp
   79 
   80 * Fix SF bug #113: Heap Buffer Overflow-2 in function DGifDecompressLine()
   81   in cgif.c.  This had been assigned CVE-2018-11490.
   82 
   83 * Fix SF bug #111: segmentation fault in PrintCodeBlock
   84 
   85 * Fix SF bug #109: Segmentation fault of giftool reading a crafted file
   86 
   87 * Fix SF bug #107: Floating point exception in giftext utility
   88 
   89 * Fix SF bug #105: heap buffer overflow in DumpScreen2RGB in gif2rgb.c:317
   90 
   91 * Fix SF bug #104: Ineffective bounds check in DGifSlurp
   92 
   93 ^ Fix SF bug #103: GIFLIB 5.1.4: DGifSlurp fails on empty comment
   94 
   95 * Fix SF bug #87: Heap buffer overflow in 5.1.2 (gif2rgb).
   96 
   97 Build Fixes
   98 -----------
   99 
  100 The horrible old autoconf build system has been removed with extreme prejudice. 
  101 You now build this simply by running "make" from the top-level directory.
  102 
  103 Version 5.1.4
  104 =============
  105 
  106 Code Fixes
  107 ----------
  108 
  109 * Fix SF bug #94: giflib 5 loves to fail to load images... a LOT.
  110 
  111 * Fix SF Bug #92: Fix buffer overread in gifbuild.
  112 
  113 * Fix SF Bug #93: Add bounds check in gifbuild netscape2.0 path
  114 
  115 * Fix SF Bug #89: Fix buffer overread in gifbuild.
  116 
  117 Version 5.1.3
  118 =============
  119 
  120 As of this version the library and code has been seriously abused by fuzzers,
  121 smoking out crash bugs (now fixed) induced by various kinds of severely
  122 malformed GIF.
  123 
  124 Code Fixes
  125 ----------
  126 
  127 * Prevent malloc randomess from causing the header output routine to emit
  128   a GIF89 version string even when no GIF89 features are present. Only
  129   breaks tests, not production code, but it's odd this wasn't caught sooner.
  130 
  131 * Prevent malloc randomess from producing sporadic failures by causing
  132   sanity checks added in 5.1.2 to misfire.
  133 
  134 * Bulletproof gif2rgb against 0-height images. Addressed SF bug #78:
  135   Heap overflow in gif2rgb with images of size 0, also SF bug #82.
  136 
  137 * Remove unnecessary duplicate EGifClose() in gifcolor.c. Fixes SF bug #83
  138   introduced in 5.1.2.
  139 
  140 * Fix SF Bug #84: incorrect return of DGifSlurp().
  141 
  142 Version 5.1.2
  143 =============
  144 
  145 Code Fixes
  146 ----------
  147 
  148 * Code hardening using reallocarray() from OpenBSD.
  149 
  150 * Sanity check in giffilter catches files with malformed extension records
  151   Fixes SourceForge bug #63: malformed gif causes segfault in giffilter.
  152 
  153 * Inexpensive sanity check in DGifSlurp() catches malformed files with
  154   no image descriptor. Fixes SourceForge bug #64: malformed gif causes
  155   crash in giftool.
  156 
  157 * Fix SourceForge bug #66: GifDrawBoxedText8x8() modifying constant input
  158   parameter.
  159 
  160 * Bail out of GIF read on invalid pixel width. Addresses Savannah bug
  161   #67: invalid shift in dgif_lib.c
  162 
  163 * Fix SourceForge bug #69: #69 Malformed: Gif file with no extension
  164   block after a GRAPHICS_EXT_FUNC_CODE extension causes segfault (in
  165   giftext).
  166 
  167 * Fix SourceForge bug #71: Buffer overwrite when giffixing a malformed gif.
  168 
  169 * Fix SourceForge bug #73: Null pointer deference in gifclrmap (only
  170   reachable with malformed GIF).
  171 
  172 * Fix SourceForge bug #74: Double free in gifsponge under 5.1.1,
  173   for any valid gif image.
  174 
  175 * Fix SourceForge bug #75: GAGetArgs overflows due to uncounted use of va_arg.
  176 
  177 * Sanity check in giffix catches some malformed files. Addresses
  178   SourceForge bug #77: dgif_lib.c: extension processing error
  179 
  180 
  181 Version 5.1.1
  182 =============
  183 
  184 Code Fixes
  185 ----------
  186 
  187 * Numerous minor fixes in getarg.c. Affects only the utilities, not the
  188   core library.
  189 
  190 * Fix SourceForge bug #59: DGifOpen can segfault if DGifGetScreenDesc fails.
  191 
  192 * SourceForge patch #20: In gifalloc, fix usage of realloc() in case of failure.
  193 
  194 * Fix SourceForge bug #61 Leak in gifsponge.
  195 
  196 Build Fixes
  197 ----------
  198 
  199 * glibtoolize port fix for OS X.
  200 
  201 Version 5.1.0
  202 =============
  203 
  204 Changes to the API require a library major-version bump.
  205 
  206 Code Fixes
  207 ----------
  208 
  209 * A small change to the API: DGifClose() and EGifClose() now take a
  210   pointer-to-int second argument (like the corresponding openers)
  211   where a diagnostic code will be deposited when they return
  212   GIF_ERROR.  This replaces the old behavior in which the GifFile
  213   structure was left unfreed so the Error member in it could be filled
  214   and remain available.  The change was was required because it's
  215   not always possible to free the struct afterwards. Case in point is
  216   a C# wrapper for giflib (or any language/environment where you can't
  217   just free objects allocated in a foreign shared library.)
  218 
  219 * Minor fix for SF bug #56; BitsPerPixel may be left as uninitialized
  220   value when reading (truncated) gif.
  221 
  222 * Applied SF patch #17: Use a fallback on Windows where mkstemp is not
  223   available.
  224 
  225 * Applied SF patch #15: Code hardening, preventing spurious
  226   defective-image messages.
  227 
  228 Retirements
  229 -----------
  230 
  231 * Removed gif2raw from utils. Its blithe assumption that the EGA16
  232   palette is a reliable default is now about 20 years obsolete. Format
  233   conversion is better done with convert(1) from the ImageMagick suite,
  234   anyway.
  235 
  236 Version 5.0.6
  237 =============
  238 
  239 Minor fix for a rare memory leak (SF bug #55).  
  240 
  241 MinGW port fixes.
  242 
  243 Repair the internal quantization function used in gif2rgb so it's
  244 less vulnerable to cross-platform skew due to qsort() being unstable.
  245 This shouldn't affect production use, it's just a cross-platform
  246 issue for regression testing 
  247 
  248 Version 5.0.5
  249 =============
  250 
  251 Set the error return properly when a screen descriptor read fails.
  252 Fixes for some minor API documentation bugs. Some internal manual
  253 pages are not to be installed.
  254 
  255 Version 5.0.4
  256 =============
  257 
  258 Fix for a rare misrendering bug when a GIF overruns the decompression-code 
  259 table. The image on which this was spotted was a relatively long-running 
  260 animated GIF; still images of ordinary size should have been immune.
  261 
  262 Version 5.0.3
  263 =============
  264 
  265 Fix a build-system glitch so it will install manpages.
  266 
  267 Version 5.0.2
  268 =============
  269 
  270 Documentation and polish
  271 ------------------------
  272 * Partial build is now possible on systems without xmlto.
  273 
  274 Code Fixes
  275 ----------
  276 * Change unused return of EGifSetGifVersion() to void.
  277 * Buffer overrun prevention in gifinto.
  278 
  279 Version 5.0.1
  280 =============
  281 
  282 Documentation and polish
  283 ------------------------
  284 * There is now an installable manual page for the GIFLIB utility kit.
  285 
  286 Retirements
  287 -----------
  288 * gifinter is gone.  Use "convert -interlace line" from the ImageMagick suite.
  289 
  290 Code Fixes
  291 ----------
  292 * In 5.0.0 the private gif89 bit wasn't being guaranteed cleared at
  293   the beginning of EGifGetGifVersion(); this occasionally led to an
  294   incorrect version prefix being issued dependent on the state of
  295   malloced memory.
  296 * An EGifSetGifVersion() function taking a GifFile argument has been 
  297   added for use with the low-level sequential API. This change requires
  298   a bump of the library revision number.
  299 
  300 Version 5.0.0
  301 =============
  302 
  303 Changes to the API require a library major-version bump. Certain
  304 initialization functions have acquired an integer address argument for
  305 passing back an error code, in order to avoid thread-unsafe static
  306 storage. Application code using extension blocks will require minor
  307 changes. A few functions have been renamed.
  308 
  309 Code Fixes
  310 ----------
  311 * Fixes applied for CVE-2005-2974 and CVE-2005-3350
  312   This closes Debian bug #337972.
  313 
  314 New API Features
  315 ----------------
  316 
  317 Thread Safety
  318 ~~~~~~~~~~~~~
  319 The library is now completely re-entrant and thread-safe.
  320 
  321 * Library error handling no longer uses a static cell to store the last
  322   error code registered; that made the library thread-unsafe.  For functions 
  323   other than GIF file openers, the code is now put in an Error member of
  324   the GifFileType structure.  The GifError() and GifLastError() functions
  325   that referenced that static cell are gone, and the GifErrorString()
  326   function introduced in the 4.2 release now takes an explicit error code
  327   argument.
  328 * GIF file openers - DGifOpenFileName(), DGifOpenFileHandle(), DGifOpen(),
  329   EGifOpenFileName(), EGifOpenFileHandle(), and EGifOpen() - all now take
  330   a final integer address argument.  If non-null, this is used to pass
  331   back an error code when the function returns NULL. 
  332 
  333 Extensions
  334 ~~~~~~~~~~
  335 The ExtensionBlock API has been repaired, solving some problems with GIF89
  336 extension handling in earlier versions.
  337 
  338 * DGifSlurp() and EGifSpew() now preserve trailing extension blocks with
  339   no following image file.
  340 * Three documented functions - EGifPutExtensionFirst(), EGifPutExtensionNext(),
  341   and EGifPutExtensionLast() - have been relaced by new functions
  342   EGifPutExtensionLeader(), EGifPutExtensionBlock(), and 
  343   EGifPutExtensionTrailer().  See the Compatibility section of
  344   the library API documentation for details.
  345 * New functions DGifSavedExtensionToGCB() and EGifGCBToSavedExtension()
  346   make it easy to read and edit GIF89 graphics control blocks in saved images.
  347 
  348 Namespacing
  349 ~~~~~~~~~~~
  350 All functions exported by giflib now have DGif, EGif, or Gif as a name prefix.
  351 
  352 * Three documented functions - MakeMapObject(), FreeMapObject(), and
  353   UnionColorMap() - have been renamed to GifMakeMapObject(),
  354   GifFreeMapObject(), and GifUnionColorMap() respectively.
  355 * The library Draw* functions are now prefixed GifDraw*, and the
  356   text-drawing ones are suffixed with "8x8". This fixes a conflict
  357   with the Windows API and leaves the door open for more general text-drawing
  358   functions with different font sizes.
  359 
  360 Other changes
  361 ~~~~~~~~~~~~~
  362 * DGifSlurp() and EGifSpew() now read and write interlaced images properly.
  363 * The amazingly obscure colormap sort flag and pixel aspect ratio
  364   features of GIF are now read and preserved, for whatever good that
  365   may do.
  366 * Six undocumented functions have been renamed; five of these take additional
  367   or slightly different argument types. See the Compatibility section of
  368   the library API documentation for details.
  369 * There's now an EGifGetGifVersion() that computes the version EGifSpew() 
  370   will write.
  371 * QuantizeBuffer() has been returned to the core library as GifQuantizeBuffer() 
  372   - turns out some important applications (notably mplayer) were using it.
  373 * TRUE and FALSE macros are gone, also VoidPtr.  No more namespace pollution.
  374 * Various arguments have been made const where possible.
  375 
  376 Retirements
  377 -----------
  378 * The (undocumented) gifinfo utility is gone.  Use giftool -f instead.
  379 * The gifburst utility is gone.  Everybody has image viewers that
  380   can pan now, and removing it gets rid of a dependency on Perl.
  381 * gifcompose is gone.  It was a decent idea when I wrote it in 1989,
  382   but I did the same thing better and cleaner a decade later with
  383   PILdriver in the PIL package. Removing it gets rid of a dependency
  384   on shell.
  385 * gif2x11 gifasm, gifcomb, gifflip, gifovly, gifpos, gifresize, and gifrotate
  386   are all gone.  The ImageMagick display(1)/convert(1) utilities and PILdriver
  387   do these things better and in a format-independent way.
  388 * Lennie Araki's Windows C++ wrapper is gone. It's eight years old,
  389   unmaintained, he has dropped out of sight, and a better one needs to
  390   be written to use the high-level GIFLIB API and GIF89 graphics
  391   control extension support.  We'll carry such a wrapper when we have
  392   a maintainer for it.
  393 * EGifSetVersion(), introduced in 4.2, is gone. The library always
  394   writes GIF87 or GIF89 as required by the data. This change helps
  395   with thread safety.
  396 
  397 Utilities
  398 ---------
  399 * Several utilities have been renamed to (a) fix last-century's habit
  400   of arbitarily smashing vowels out of names to make them just one or two
  401   characters shorter, (b) ensure that every utility in this set has 'gif'
  402   as a name prefix. Here's the list:
  403 
  404 	giffiltr -> giffilter
  405 	gifspnge -> gifsponge
  406 	icon2gif -> gifbuild
  407 	text2gif -> gifecho
  408   	raw2gif  -> gif2raw
  409 
  410 * To go with its new name, gif2raw now dumps raw pixels from a GIF if the
  411   (previously required) size option is missing.
  412 * Standalone rgb2gif is gone; the same capability is now a mode of gif2rgb.
  413 * giftext displays the parsed contents of GIF89 graphics control blocks.
  414 * gifbuild handles GIF89 graphics control blocks and Netscape animation
  415   loop blocks; it can can display and update either.
  416 * gifrotate and other filter utilities now preserve extension blocks, 
  417   including the graphics control information for transparency and delay time.
  418 * A new utility, giftool, supports a wide variety of filtering operations
  419   on GIFs, including: setting background and transparency colors, changing
  420   interlacing, setting image delays, setting the user-input flag, and setting
  421   the aspect-ratio byte.  It can sequence multiple operations.
  422 * The test-pattern generators gifbg, gifcolor, gihisto and gifwedge and the
  423   code templates giffilter and gifsponge are no longer installed by default.
  424 
  425 Documentation and polish
  426 ------------------------
  427 * The history.txt and build.txt and files from 4.2.0 now have .asc extensions
  428   to indicate that they use asciidoc markup, contrasting with the txt 
  429   standards files from CompuServe.
  430 * The documentation now includes "What's In A GIF", a very detailed narrative
  431   description of the file format.
  432 * The -A option of gifasm (for inserting a loop control block) is documented.
  433 * The documentation directory includes a copy of the original GIF87 
  434   specification as well as GIF89's.
  435 * The project now has a logo.
  436 
  437 Version 4.2.0
  438 =============
  439 
  440 Now maintained by ESR again after handoff by Toshio Kuratomi.
  441 
  442 Code Fixes
  443 ----------
  444 * Code updated internally to C99 to enable more correctness checks by
  445   the compiler. Compiles under GCC 4.6.1 without errors or warnings.
  446 * A rare resource leak in the colormap-object maker was found with
  447   Coverity and fixed.
  448 * The code now audits clean under Coverity and cppcheck.
  449 * splint cleanup begun, there's a lot of work still to do on this.
  450 
  451 New API Features
  452 ----------------
  453 * The default GIF version to write is now computed at write time from
  454   the types of an image's extension blocks, but can be overridden with 
  455   EGifSetGifVersion().
  456 * EGifSpew() is now thread-safe. 
  457 * Two new functions, GifError() and GifErrorString(),
  458   return the error state in a form that can be used by programs.
  459 * Two library functions - EGifOpenFileName() and EGifPutImageDesc() -
  460   now have bool rather than int flag arguments. Since bool is a
  461   typedef of int and TRUE/FALSE have been redefined to true/false, 
  462   both source and object compatibility with older library versions
  463   should be preserved. 
  464 * GAGetArgs(), used only in the utilities, now returns bool rather
  465   than int. 
  466 * The undocumented GIF_LIB_VERSION symbol is gone from the library header.  
  467   It has been replaced with three documented symbols: GIFLIB_MAJOR,
  468   GIFLIB_MINOR, and GIFLIB_RELEASE.
  469 
  470 Retirements
  471 -----------
  472 * The gif2epsn and gif2iris utilities are gone.  They were full of
  473   platform dependencies for platforms long dead.  There are enough
  474   platform-independent GIF viewers in the world that these weren't
  475   adding any value. Removing these gets rid of a dependency on GL.
  476 * The rle2gif, gif2rle, and gif2ps utilities are also gone. There are enough
  477   multiformat image converters in the world that these weren't adding 
  478   any value either.  Removing them reduces the codebase's dependencies.
  479 * The undocumented DumpScreen2Gif() is gone from the library.  The
  480   only non-obsolete capture mode it supported was through X, and that
  481   probably hasn't been used in years and is replaceable by any number
  482   of capture utilities.  Dropping this code makes the library's 
  483   portability issues go away.
  484 * QuantizeBuffer(), GifQprintf(), PrintGifError(), GIF_ERROR() 
  485   and GIF_MESSAGE() have been removed from the core library.  
  486   They were used only by the utilities. QuantizeBuffer() has been
  487   inlined where it was used and the latter three are now part of the
  488   utility support library.
  489 * The Game Boy Advanced test code is gone.  The platform was discontinued
  490   in 2008; more to the point, nobody ever documented the code's assumptions
  491   or expected results.
  492 * The Changelog file is now retained for archival purposes only, and because
  493   autotools throws a hissy fit if there isn't one.  The single point of
  494   truth about changes and the reasons for them is the repository history.
  495 
  496 Behavior changes
  497 ----------------
  498 * The -q option of the utilities is replaced by an opposite -v (verbose)
  499   option; the default is now quiet for all platforms.  Defaulting to chattiness
  500   on MSDOS made sense in a world of slow text consoles, but not today.
  501 
  502 Testing
  503 -------
  504 * There is now a proper regression-test suite; run 'make' in tests/.
  505   The old test-unx script is now tests/visual-check and can be run 
  506   occasionally for a check with the Mark One Eyeball.
  507 
  508 Documentation
  509 -------------
  510 * Build instructions now live in build.txt
  511 * An overview of the giflib API now lives in api.txt.
  512 * Documentation is now in DocBook-XML, so either HTML or man pages can
  513   be generated from it.
  514 
  515 Version 4.1.6
  516 =============
  517 Brown paper bag release.  Fix a problem with header inclusion that could
  518 prevent the library from building on some platforms.
  519 
  520 Version 4.1.5
  521 =============
  522 This version has some important fixes for segfaults when working with corrupt
  523 files.  All users are strongly encouraged to upgrade.
  524 
  525 Code Fixes
  526 ----------
  527 * Fix segfault in utilities due to referencing ColorMaps in GifFiles that had
  528   no ColorMap present.
  529 * Fix gif2x11 to work on 24 bit displays.
  530 * Fix for giftext segfault when the GifFile does not store a global colormap.
  531 * Checks to fail gracefully when an image contains improper LZ codes.
  532 * Close file handles on failure in DGifOpenFileHandle()
  533 * Checks to operate on files in binary mode on WIN32 as well as MSDOS.
  534 
  535 Building
  536 --------
  537 * Add checks to make building on Win32 easier.
  538 * Allow turning off gl_s, rle, and X11 support from the configure command line.
  539 * Fix for finding a 32 bit integer type on some platforms.
  540 * Only enable -Wall if we're using gcc.
  541 
  542 Version 4.1.4
  543 =============
  544 This version fixes some bugs with deallocating ColorMaps.  Fix building on
  545 several platforms.  Fix x86_64 builds to not hang the encoder.
  546 
  547 * Fix several areas in decoding where we removed a ColorMap from our GifFile
  548   but didn't set the pointer to NULL.  This could lead to double free's of
  549   the ColorMap.
  550 * Fix a bug in dev2gif.c where we redefined some gl types incorrectly.
  551 * Fix a bug in the gif LZW encoder that was triggered on modern 64 bit
  552   platforms.
  553 * Fix building on Windows.  Note -- there has been one API changing event for
  554   Windows (renaming DrawText to DrawGifText.)  This should have conflicted with
  555   Windows API and therefore caused the builds to fail previously.  If you had
  556   it working with DrawText before, apologies, you'll need to change to
  557   DrawGifText in your code.  This only affects Windows.
  558 * Add support for building on The Game Boy Advance.  Note: Due to the GBA's
  559   limited memory, the API for the GBA uses short's in many places where the
  560   other platforms use ints.  This shouldn't affect anyone unless you've
  561   been able to get an older version of the code to run on GBA and want to
  562   start using this version instead.  A recompile of your dependent code
  563   will be necessary in this case.
  564 
  565 Version 4.1.3
  566 =============
  567 This version fixes some bugs in the Extension writing code in
  568 EGifPutExtensionFirst, Next, and Last.  Using these functions, it is possible
  569 to output extensions that contain multiple subblocks.  Additionally, library
  570 code has been updated to use these functions, making it safe to output
  571 long Comments, and multi-block extensions read in from another file.
  572 
  573 * giflib is now hosted on sourceforge with libungif:
  574   http://sourceforge.net/projects/libungif
  575 * Make the EGifPutExtension{First,Next,Last} family of functions use WRITE
  576   so user defined WRITE methods will output them correctly.
  577 * Modify EGifSpew and EGifPutComment to use EGifPutExtension{First,Next,Last}
  578   so we won't output broken GIFs when dealing with GIFs with multiple
  579   subblocks.
  580 * More -Wall fixes revealed while testing on Solaris and FreeBSD.
  581 * Updated the gif_lib.html documentation to not use EGifPutExtension when
  582   dealing with multiple subblocks.  Use EGifPutExtension{First,Next,Last}
  583   instead.
  584 * Some Windows code from the old CVS repository now available in the windows
  585   subdirectory.  I don't have a Windows environment to test and maintain this
  586   but maybe someone out there will find it useful.  Caveat hacker.
  587 
  588 Version 4.1.2
  589 =============
  590 * Numerous bug fixes from people on the old libungif mailing list.
  591 * GIF_ERROR and GIF_MESSAGE are on the deprecation list as they are also
  592   utility helper functions rather than essential to the functioning of the
  593   library.
  594 * Complete deprecation list is now in the README file
  595 * Audited the sources with gcc -Wall. Everything detectable has now been fixed.
  596 * Ran the library code through indent.
  597   
  598 Version 4.1.1
  599 =============
  600 * Merge in many bug fixes that were sent in while I was hiking the
  601   Appalachian Trail.
  602 * The qprintf methods of the library are now deprecated.  Do not use 
  603   GifQuietPrint or GifQprintf.  These should have been pushed out into the
  604   utility helper library instead of sitting around in the library proper at
  605   the same time as the getarg functions were moved out.  Getting rid of these
  606   will let us get rid of our dependence on stdarg.h/varargs.h (Which a Gif
  607   reading library has no business requiring.)
  608 
  609 Version 4.1.0
  610 =============
  611 * Several minor memory leaks in error conditions have been plugged.
  612 * New Function EGifOpen(void *userData, OutputFunc writeFunc) allows user
  613   specified gif writing functions.
  614 * Old copyright notices in a few source files have been updated.  All library
  615   copyrights should now reflect the copyright notice in the COPYING file.
  616 
  617 Version 4.0.0 -- giflib
  618 =======================
  619 This version of the giflib library merges Eric Raymond's giflib-3.0 release
  620 with the libungif-4.0 release to give people a binary compatible choice
  621 between the two libraries and gives me the chance to add bugfixes to giflib
  622 that have been incorporated in libungif.
  623 
  624 PLEASE READ THE FILE PATENT_PROBLEMS BEFORE USING THIS LIBRARY!
  625 
  626 Version 4.0.0
  627 =============
  628 Major fixes have been made to the code that handles Extensions.
  629 Unfortunately, this causes binary incompatibility with giflib-3.0 and
  630 libungif-3.x.  However, the API is still intact.  I am, however, deprecating
  631 the use of saveImage[x].Function.  Use
  632 saveImage[x].ExtensionBlocks[y].Function instead.
  633 
  634 Version 3.1.1
  635 =============
  636  The following bugs which caused SegFaults have been fixed:
  637  * When reading gif files with extensions, DGifSlurp would violate memory.
  638  * When closing a gif that had a local colormap, DGifCloseFile would attempt
  639    to free the colormap twice.
  640  * Fix a potential memory leak in DGifSlurp.
  641  * New function DGifOpen to allow specifying a user definable gif reading
  642    function.
  643 
  644 Version 3.1.0
  645 =============
  646  * Add a new function:
  647         GifFileType *DGifOpen(void * userData, InputFunc readFunc)
  648    to read the gif image from a user defined input function.
  649  * A few bugfixes.
  650 
  651 Version 3.0
  652 ===========
  653 
  654 Changes from Eric Raymond's libgif
  655 ----------------------------------
  656 * A new gif encoder that makes uncompressed gifs rather than standard,
  657   LZW-compressed gifs.  This is actually the major motivating factor behind
  658   libungif; to provide third-party distributors a means to provide a gif
  659   library without the patented LZW encoder.
  660 * A new configure script to make compilation of the library on multiple
  661   platforms easier.  The package should now build shared libraries on all
  662   platforms supported by GNU libtool.
  663 * Removed the getarg functions from libgif.  These were not part of the
  664   public API and only used by the tools in the utils directory so I separated
  665   them from the rest of the library.
  666 * Fixed a few bugs in the tools in the utils directory.
  667 
  668 Version 3.0
  669 ===========
  670 
  671 New features
  672 ------------
  673 * Incorporated Sirtaj Kang's changes to make both static and shared libs.
  674 * All the utility and library docs are HTML now.
  675 * The library and relevant utilities are now fully GIF89-aware.
  676 * Functions for drawing text and boxes on saved images are documented.
  677 * The distribution is now issued under a simple X-Consortium-style license.
  678 * Can now generate package RPMs and LSM automatically.
  679 * Home page with Web-acessible documentation at http://www.ccil.org/~esr/giflib
  680 
  681 Bug fixes
  682 ---------
  683 * Fix giftext to not core dump on a null extension record.
  684 * Incorporate Philip VanBaren's change to prevent a core dump in gifasm.
  685 
  686 Version 2.3
  687 ===========
  688 * Fixed a core-dump bug in gifcomb revealed by ELF environment in Linux 1.2.13.
  689 
  690 Version 2.2b
  691 ============
  692 * Added gifburst tool.
  693 
  694 Version 2.2
  695 ===========
  696 * Linux is supported.
  697 
  698 Version 2.1
  699 ===========
  700 * Added the gifovly tool, which supports making a composite from several GIF
  701   images.
  702 * Used gifovly to implement a full-fledged pasteup program in shell.  It's
  703   called gifcompose and lives in the util directory.
  704 * Added a copy of the GIF89 standard to the doc directory (gif89.txt);
  705   also a description of the preferred compression method (lzgif.txt).
  706 
  707 Version 2.0
  708 ===========
  709    With this version, development was taken over from Gershon Elber by Eric
  710 S. Raymond <esr@snark.thyrsus.com>.  Note that I, esr, have pretty much
  711 adhered to Gershon's coding style, even though it's quite baroque and DOS-
  712 headed by my standards.
  713 
  714 Library Improvements
  715 --------------------
  716 * New DGifSlurp() and EGifSpew() library entry points allow all GIF-bashing
  717   to be done in core on machines with sufficient memory.  Writing code to
  718   slice'n'dice multiple GIFs in non-sequential ways is now much easier (send
  719   kudos and brickbats to esr, small unmarked bills preferred).
  720 * The interface has changed somewhat.  Members in the GifFileType structure
  721   have been renamed and regrouped.  This was required for support of the
  722   SavedImages member (which enables the new functions mentioned in 1).  Also,
  723   there is a new data type for allocated color maps and routines to handle
  724   it conveniently.
  725 * Some minor bugs have been fixed.  Most notably, the DGif code now correctly
  726   handles the possibility of more than one code block per extension record,
  727   as per the GIF spec.  It's not clear, however, that anyone ever has or
  728   ever will use this feature for anything...
  729 
  730 New Tools and Options
  731 ---------------------
  732 * A brand new, ultra-spiffy tool `icon2gif' is included.  It assembles named
  733   GIFs with editable text color map & icon raster representations to produce
  734   multi-image GIFs usable as graphical resource files.  It can also dump most
  735   GIFs in the same text-only form it parses.  This makes it easy to edit GIFs
  736   even if you don't have a graphics editor.
  737 * The gifclip utility supports a new `-c' (complement) option that allows you
  738   to perform an `inverse clip', removing horizontal or vertical bands from an
  739   image.
  740 * The gifclrmp utility supports a new `-t' switch for shuffling color index
  741    values.
  742 * A new tool `gifcolor' generates test pattern from colormap input.
  743 
  744 New Documentation and Examples
  745 ------------------------------
  746 * The documentation has been overhauled completely and translated out of the
  747   dialect spoken by the estimable Mr. Elber into something like standard
  748   English :-).
  749 * Two source code files gifspnge.c and giffiltr.c have been added to the
  750   util directory.  These are GIF copiers that exercise the I/O routines,
  751   provided as skeletons for your applications.  Read the comments in them
  752   for more info.
  753 * The util Makefile for UNIX has been improved.  It now uses the cc/gcc -s
  754   option rather than strip(1).  There are now separate install productions,
  755   so you can test new versions in util before installation for production
  756   (the top-level make script still does an install).
  757 
  758 Version 1.2
  759 ===========
  760 * GIFFIX - a new tool to attempt and fix broken GIF images. Currently fix
  761   images that has EOF prematurely by padding with the darkest color.
  762 * Make GIF2BGI display as much as it can considering the mem. avail.
  763 * Add -q flag to all tools for quite running scan line number mode.
  764 * Fix a (minor!?) bug in the GIF decoder when encountering code 4095.
  765 * New tools (RGB2GIF and GIF2RGB) to convert GIF to/from 24 bits RGB images.
  766 * New tool GIFROTAT to rotate a gif image by an arbitrary angle.
  767 * GifRSize was updated to resize by an arbitrary factor.
  768 
  769 Version 1.1
  770 ===========
  771 * GIF2BGI - a new utility to display GIF images using Borland's BGI drivers
  772   (if you have one...)
  773 * TEXT2GIF - Converts plain text into GIF images.
  774 * GIF2IRIS - SGI4D display program for GIF images.
  775 * GIF_LIB naming convension has been modified to make sure it has unique
  776   names (see gif_lib.h).
  777 * Support for SGI4D gl and X11 window grabbing has been added to the
  778   library. SGI4D input is quantizied into 8 bits.
  779   Also support for EGA/VGA devices has been added as well.
  780   see Dev2gif.c module.
  781 * Support for the new gif89a format has been added.
  782 
  783 
  784