mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-22 18:35:09 +00:00
Handle giflib 5 changes (tiny change)
* configure.ac: Update for giflib 5. * src/image.c (GIFLIB_MAJOR): Ensure it's defined. (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
This commit is contained in:
parent
9db13baf0c
commit
f3606ef766
@ -1,3 +1,7 @@
|
||||
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.
|
||||
|
@ -3106,8 +3106,9 @@ elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
|
||||
|| 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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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.
|
||||
|
16
src/image.c
16
src/image.c
@ -7219,14 +7219,22 @@ gif_image_p (Lisp_Object object)
|
||||
|
||||
#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)
|
||||
@ -7316,7 +7324,11 @@ gif_load (struct frame *f, struct image *img)
|
||||
}
|
||||
|
||||
/* 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);
|
||||
@ -7337,7 +7349,11 @@ gif_load (struct frame *f, struct image *img)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user