1			GIFLIB NEWS
2
3
4Version 5.2.1
5==============
6
7This 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
13Version 5.2.0
14=============
15
16The undocumented and deprecated GifQuantizeBuffer() entry point
17has been moved to the util library to reduce libgif size and attack
18surface. Applications needing this function are couraged to link the
19util library or make their own copy.
20
21The following obsolete utility programs are no longer installed:
22gifecho, giffilter, gifinto, gifsponge. These were either installed in
23error or have been obsolesced by modern image-transformmation tools
24like ImageMagick convert. They may be removed entirely in a future
25release.
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
33Version 5.1.9
34=============
35
36The documentation directory now includes an HTMlified version of the
37GIF89 standard, and a more detailed description of how LZW compression
38is 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
44Version 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
59Version 5.1.7
60=============
61
62Correct a minor packaging error (superfluous symlinks) in the 5.1.6 tarballs.
63
64Version 5.1.6
65=============
66
67Build Fixes
68-----------
69
70Fix library installation in the Makefile.
71
72Version 5.1.5
73=============
74
75Code 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
97Build Fixes
98-----------
99
100The horrible old autoconf build system has been removed with extreme prejudice.
101You now build this simply by running "make" from the top-level directory.
102
103Version 5.1.4
104=============
105
106Code 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
117Version 5.1.3
118=============
119
120As of this version the library and code has been seriously abused by fuzzers,
121smoking out crash bugs (now fixed) induced by various kinds of severely
122malformed GIF.
123
124Code 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
142Version 5.1.2
143=============
144
145Code 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
181Version 5.1.1
182=============
183
184Code 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
196Build Fixes
197----------
198
199* glibtoolize port fix for OS X.
200
201Version 5.1.0
202=============
203
204Changes to the API require a library major-version bump.
205
206Code 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
228Retirements
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
236Version 5.0.6
237=============
238
239Minor fix for a rare memory leak (SF bug #55).
240
241MinGW port fixes.
242
243Repair the internal quantization function used in gif2rgb so it's
244less vulnerable to cross-platform skew due to qsort() being unstable.
245This shouldn't affect production use, it's just a cross-platform
246issue for regression testing
247
248Version 5.0.5
249=============
250
251Set the error return properly when a screen descriptor read fails.
252Fixes for some minor API documentation bugs. Some internal manual
253pages are not to be installed.
254
255Version 5.0.4
256=============
257
258Fix for a rare misrendering bug when a GIF overruns the decompression-code
259table. The image on which this was spotted was a relatively long-running
260animated GIF; still images of ordinary size should have been immune.
261
262Version 5.0.3
263=============
264
265Fix a build-system glitch so it will install manpages.
266
267Version 5.0.2
268=============
269
270Documentation and polish
271------------------------
272* Partial build is now possible on systems without xmlto.
273
274Code Fixes
275----------
276* Change unused return of EGifSetGifVersion() to void.
277* Buffer overrun prevention in gifinto.
278
279Version 5.0.1
280=============
281
282Documentation and polish
283------------------------
284* There is now an installable manual page for the GIFLIB utility kit.
285
286Retirements
287-----------
288* gifinter is gone.  Use "convert -interlace line" from the ImageMagick suite.
289
290Code 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
300Version 5.0.0
301=============
302
303Changes to the API require a library major-version bump. Certain
304initialization functions have acquired an integer address argument for
305passing back an error code, in order to avoid thread-unsafe static
306storage. Application code using extension blocks will require minor
307changes. A few functions have been renamed.
308
309Code Fixes
310----------
311* Fixes applied for CVE-2005-2974 and CVE-2005-3350
312  This closes Debian bug #337972.
313
314New API Features
315----------------
316
317Thread Safety
318~~~~~~~~~~~~~
319The 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
333Extensions
334~~~~~~~~~~
335The ExtensionBlock API has been repaired, solving some problems with GIF89
336extension 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
348Namespacing
349~~~~~~~~~~~
350All 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
360Other 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
376Retirements
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
397Utilities
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
425Documentation 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
437Version 4.2.0
438=============
439
440Now maintained by ESR again after handoff by Toshio Kuratomi.
441
442Code 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
451New 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
470Retirements
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
496Behavior 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
502Testing
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
508Documentation
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
515Version 4.1.6
516=============
517Brown paper bag release.  Fix a problem with header inclusion that could
518prevent the library from building on some platforms.
519
520Version 4.1.5
521=============
522This version has some important fixes for segfaults when working with corrupt
523files.  All users are strongly encouraged to upgrade.
524
525Code 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
535Building
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
542Version 4.1.4
543=============
544This version fixes some bugs with deallocating ColorMaps.  Fix building on
545several 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
565Version 4.1.3
566=============
567This version fixes some bugs in the Extension writing code in
568EGifPutExtensionFirst, Next, and Last.  Using these functions, it is possible
569to output extensions that contain multiple subblocks.  Additionally, library
570code has been updated to use these functions, making it safe to output
571long 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
588Version 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
598Version 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
609Version 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
617Version 4.0.0 -- giflib
618=======================
619This version of the giflib library merges Eric Raymond's giflib-3.0 release
620with the libungif-4.0 release to give people a binary compatible choice
621between the two libraries and gives me the chance to add bugfixes to giflib
622that have been incorporated in libungif.
623
624PLEASE READ THE FILE PATENT_PROBLEMS BEFORE USING THIS LIBRARY!
625
626Version 4.0.0
627=============
628Major fixes have been made to the code that handles Extensions.
629Unfortunately, this causes binary incompatibility with giflib-3.0 and
630libungif-3.x.  However, the API is still intact.  I am, however, deprecating
631the use of saveImage[x].Function.  Use
632saveImage[x].ExtensionBlocks[y].Function instead.
633
634Version 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
644Version 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
651Version 3.0
652===========
653
654Changes 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
668Version 3.0
669===========
670
671New 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
681Bug 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
686Version 2.3
687===========
688* Fixed a core-dump bug in gifcomb revealed by ELF environment in Linux 1.2.13.
689
690Version 2.2b
691============
692* Added gifburst tool.
693
694Version 2.2
695===========
696* Linux is supported.
697
698Version 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
707Version 2.0
708===========
709   With this version, development was taken over from Gershon Elber by Eric
710S. Raymond <esr@snark.thyrsus.com>.  Note that I, esr, have pretty much
711adhered to Gershon's coding style, even though it's quite baroque and DOS-
712headed by my standards.
713
714Library 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
730New 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
744New 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
758Version 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
769Version 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
785