+2013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
+
+ * configure.ac: Update for giflib 5. (Bug#15531)
+
2013-10-08 Eli Zaretskii <eliz@gnu.org>
* configure.ac (HAVE_MENUS): Define unconditionally.
|| test "${HAVE_W32}" = "yes"; then
AC_CHECK_HEADER(gif_lib.h,
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
-# Earlier versions can crash Emacs.
- [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
+# Earlier versions can crash Emacs, but version 5.0 removes EGifPutExtensionLast.
+ [AC_CHECK_LIB(gif, GifMakeMapObject, HAVE_GIF=yes,
+ [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])])
if test "$HAVE_GIF" = yes; then
LIBGIF=-lgif
+2013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
+
+ * image.c (GIFLIB_MAJOR): Ensure it's defined.
+ (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
+
2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
* fns.c (sxhash_bool_vector): Fix buffer read overrun.
#endif /* HAVE_NTGUI */
+#ifndef GIFLIB_MAJOR
+#define GIFLIB_MAJOR 0
+#endif
#ifdef WINDOWSNT
/* GIF library details. */
DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
+#if GIFLIB_MAJOR < 5
DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *));
+#else
+DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc, int *));
+DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *, int *));
+#endif
static bool
init_gif_functions (void)
}
/* Open the GIF file. */
+#if GIFLIB_MAJOR < 5
gif = fn_DGifOpenFileName (SSDATA (file));
+#else
+ gif = fn_DGifOpenFileName (SSDATA (file), NULL);
+#endif
if (gif == NULL)
{
image_error ("Cannot open `%s'", file, Qnil);
memsrc.len = SBYTES (specified_data);
memsrc.index = 0;
+#if GIFLIB_MAJOR < 5
gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
+#else
+ gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL);
+#endif
if (!gif)
{
image_error ("Cannot open memory source `%s'", img->spec, Qnil);