diff options
| author | Daniel Colascione | 2012-10-08 02:26:10 -0800 |
|---|---|---|
| committer | Daniel Colascione | 2012-10-08 02:26:10 -0800 |
| commit | 93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab (patch) | |
| tree | 0d5a5e00c82b9079b2d154710daee756118cc482 /src | |
| parent | 5c0255d90bf07b0fc59a7fe74f35f4b704ebbab4 (diff) | |
| download | emacs-93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab.tar.gz emacs-93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab.zip | |
Improve fix for jpeglib build break
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/image.c | 25 |
2 files changed, 20 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 250024ba6c5..f9a47ebb4b6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-10-08 Daniel Colascione <dancol@dancol.org> | ||
| 2 | |||
| 3 | * image.c: Permanent fix for JPEG compilation issue --- limit | ||
| 4 | jpeglib `boolean' redefinition to Cygwin builds. | ||
| 5 | |||
| 1 | 2012-10-08 Eli Zaretskii <eliz@gnu.org> | 6 | 2012-10-08 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. | 8 | * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. |
diff --git a/src/image.c b/src/image.c index 790ede4c35e..6058bdf444c 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -6061,21 +6061,26 @@ jpeg_image_p (Lisp_Object object) | |||
| 6061 | #define __WIN32__ 1 | 6061 | #define __WIN32__ 1 |
| 6062 | #endif | 6062 | #endif |
| 6063 | 6063 | ||
| 6064 | #if 0 /* FIXME */ | 6064 | /* rpcndr.h (via windows.h) and jpeglib.h both define boolean types. |
| 6065 | /* Work around conflict between jpeg boolean and rpcndr.h | 6065 | Some versions of jpeglib try to detect whether rpcndr.h is loaded, |
| 6066 | under Windows. */ | 6066 | using the Windows boolean type instead of the jpeglib boolean type |
| 6067 | if so. Cygwin jpeglib, however, doesn't try to detect whether its | ||
| 6068 | headers are included along with windows.h, so under Cygwin, jpeglib | ||
| 6069 | attempts to define a conflicting boolean type. Worse, forcing | ||
| 6070 | Cygwin jpeglib headers to use the Windows boolean type doesn't work | ||
| 6071 | because it created an ABI incompatibility between the | ||
| 6072 | already-compiled jpeg library and the header interface definition. | ||
| 6073 | |||
| 6074 | The best we can do is to define jpeglib's boolean type to a | ||
| 6075 | different name. This name, jpeg_boolean, remains in effect through | ||
| 6076 | the rest of image.c. | ||
| 6077 | */ | ||
| 6078 | #if defined (CYGWIN) && defined (HAVE_NTGUI) | ||
| 6067 | #define boolean jpeg_boolean | 6079 | #define boolean jpeg_boolean |
| 6068 | #endif | 6080 | #endif |
| 6069 | #include <jpeglib.h> | 6081 | #include <jpeglib.h> |
| 6070 | #include <jerror.h> | 6082 | #include <jerror.h> |
| 6071 | 6083 | ||
| 6072 | /* Don't undefine boolean --- use the JPEG boolean | ||
| 6073 | through the rest of the file. */ | ||
| 6074 | |||
| 6075 | #ifdef HAVE_STLIB_H_1 | ||
| 6076 | #define HAVE_STDLIB_H 1 | ||
| 6077 | #endif | ||
| 6078 | |||
| 6079 | #ifdef WINDOWSNT | 6084 | #ifdef WINDOWSNT |
| 6080 | 6085 | ||
| 6081 | /* JPEG library details. */ | 6086 | /* JPEG library details. */ |