]> git.eshelyaron.com Git - emacs.git/commitdiff
Support newer versions of libjpeg on MS-Windows.
authorClaudio Bley <claudio.bley@googlemail.com>
Fri, 1 Nov 2013 08:52:22 +0000 (10:52 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 1 Nov 2013 08:52:22 +0000 (10:52 +0200)
 src/image.c (Qlibjpeg_version): New variable.
 (syms_of_image): DEFSYM and initialize it.

 lisp/term/w32-win.el (dynamic-library-alist): Support newer versions
 of libjpeg starting with v7: look only for the DLL from the
 version against which Emacs was built.

lisp/ChangeLog
lisp/term/w32-win.el
src/ChangeLog
src/image.c

index e99950276d8342c7b6e90574eedb1d4e28b77043..eecc10efbb969c3f212944619b2b0582cefaed56 100644 (file)
@@ -1,3 +1,9 @@
+2013-11-01  Claudio Bley  <claudio.bley@googlemail.com>
+
+       * term/w32-win.el (dynamic-library-alist): Support newer versions
+       of libjpeg starting with v7: look only for the DLL from the
+       version against which Emacs was built.
+
 2013-11-01  Bozhidar Batsov  <bozhidar@batsov.com>
 
        * progmodes/ruby-mode.el (ruby-indent-tabs-mode)
index 9690a5a7d75b7d5dc13bda77da4bafa24781a24d..bf5f1b6435cf555f6529aece4d8551fdd70905a1 100644 (file)
@@ -221,8 +221,17 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
         '(png "libpng12d.dll" "libpng12.dll" "libpng3.dll" "libpng.dll"
               ;; these are libpng 1.2.8 from GTK+
               "libpng13d.dll" "libpng13.dll"))
-       '(jpeg "jpeg62.dll" "libjpeg.dll" "jpeg-62.dll" "jpeg.dll")
        '(tiff "libtiff3.dll" "libtiff.dll")
+       (if (> libjpeg-version 62)
+          ;; Versions of libjpeg after 6b are incompatible with
+          ;; earlier versions, and each of versions 7, 8, and 9 is
+          ;; also incompatible with the preceding ones (the core data
+          ;; structures used for communications with the library
+          ;; gained additional members with each new version).  So we
+          ;; must use only the version of the library which Emacs was
+          ;; compiled against.
+          (list 'jpeg (format "libjpeg-%d.dll" (/ libjpeg-version 10)))
+        '(jpeg "jpeg62.dll" "libjpeg.dll" "jpeg-62.dll" "jpeg.dll"))
        ;; Versions of giflib 5.0.0 and later changed signatures of
        ;; several functions used by Emacs, which makes those versions
        ;; incompatible with previous ones.  We select the correct
index 0c76b176a1fb00b6dfce248b8f694c24764875ba..0d58733f4bf1455f807f973039ab22760ce6cd51 100644 (file)
@@ -1,3 +1,8 @@
+2013-11-01  Claudio Bley  <claudio.bley@googlemail.com>
+
+       * image.c (Qlibjpeg_version): New variable.
+       (syms_of_image): DEFSYM and initialize it.
+
 2013-10-31  Jan Djärv  <jan.h.d@swipnet.se>
 
        * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
index 6691cfc8a10fe9e671fdd76ac8f07ed6bbfded3e..fca1bb077f6d9bf96436867c67322addfa073e5c 100644 (file)
@@ -87,11 +87,12 @@ typedef struct w32_bitmap_record Bitmap_Record;
 #define x_defined_color w32_defined_color
 #define DefaultDepthOfScreen(screen) (one_w32_display_info.n_cbits)
 
-/* Versions of libpng and libgif that we were compiled with, or -1 if
-   no PNG/GIF support was compiled in.  This is tested by w32-win.el
-   to correctly set up the alist used to search for the respective
-   image libraries.  */
-Lisp_Object Qlibpng_version, Qlibgif_version;
+/* Versions of libpng, libgif, and libjpeg that we were compiled with,
+   or -1 if no PNG/GIF support was compiled in.  This is tested by
+   w32-win.el to correctly set up the alist used to search for the
+   respective image libraries.  */
+Lisp_Object Qlibpng_version, Qlibgif_version, Qlibjpeg_version;
+
 #endif /* HAVE_NTGUI */
 
 #ifdef HAVE_NS
@@ -9410,6 +9411,14 @@ non-numeric, there is no explicit limit on the size of images.  */);
                     + GIFLIB_RELEASE)
 #else
        make_number (-1)
+#endif
+        );
+  DEFSYM (Qlibjpeg_version, "libjpeg-version");
+  Fset (Qlibjpeg_version,
+#if HAVE_JPEG
+       make_number (JPEG_LIB_VERSION)
+#else
+       make_number (-1)
 #endif
        );
 #endif