Changeset 3626

Show
Ignore:
Timestamp:
2005年03月06日 00時28分57秒 (4 years ago)
Author:
kit
Message:

- update to ImageMagick? 6.2.0.
- cleanup ImageMagick? support.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/2.1/nt/ChangeLog.Meadow

    r3561 r3626  
     12005-03-06  Shuichi KITAGUCHI  <kit@meadowy.org> 
     2 
     3        * configure.meadow.bat: add --magick option. 
     4 
     5        * INSTALL.Meadow.ja: Ditto. 
     6 
     7        * INSTALL.Meadow: Ditto. 
     8 
    192004-11-28  Shuichi KITAGUCHI  <kit@meadowy.org> 
    210 
  • branches/2.1/nt/INSTALL.Meadow

    r3558 r3626  
    133133----------------- 
    134134cd Meadow-<VERSION>\nt [RETURN] 
    135 configure.meadow --with-msvc --prefix <YOUR INSTALL DIRECTORY> [RETURN] 
     135configure.meadow --with-msvc --prefix <YOUR INSTALL DIRECTORY> --magick "<IMAGEMAGICK DIRECTORY>" [RETURN] 
    136136nmake bootstrap [RETURN] 
    137137nmake all [RETURN] 
     
    163163----------------- 
    164164cd Meadow-<VERSION>/nt [RETURN] 
    165 ./configure.meadow.bat --with-gcc --no-cygwin --no-debug --prefix=<YOUR INSTALL DIRECTORY> [RETURN] 
     165./configure.meadow.bat --with-gcc --no-cygwin --no-debug --prefix=<YOUR INSTALL DIRECTORY> --magick "<IMAGEMAGICK DIRECTORY>" [RETURN] 
    166166make bootstrap [RETURN] 
    167167make all [RETURN] 
  • branches/2.1/nt/INSTALL.Meadow.ja

    r3298 r3626  
    157157----------------- 
    158158cd Meadow-<VERSION>\nt [RETURN] 
    159 configure.meadow --with-msvc --prefix <YOUR INSTALL DIRECTORY> [RETURN] 
     159configure.meadow --with-msvc --prefix <YOUR INSTALL DIRECTORY> --magick "<IMAGEMAGICK DIRECTORY>" [RETURN] 
    160160nmake bootstrap [RETURN] 
    161161nmake all [RETURN] 
     
    185185----------------- 
    186186cd Meadow-<VERSION>/nt [RETURN] 
    187 ./configure.meadow.bat --with-gcc --no-cygwin --prefix <YOUR INSTALL DIRECTORY> [RETURN] 
     187./configure.meadow.bat --with-gcc --no-cygwin --prefix <YOUR INSTALL DIRECTORY> --magick "<IMAGEMAGICK DIRECTORY>" [RETURN] 
    188188make bootstrap [RETURN] 
    189189make all [RETURN] 
  • branches/2.1/nt/configure.meadow.bat

    r3558 r3626  
    6464rem   Default settings. 
    6565set prefix= 
     66set magick= 
    6667set nodebug=N 
    6768set noopt=N 
     
    7980if "%1" == "--help" goto usage 
    8081if "%1" == "--prefix" goto setprefix 
     82if "%1" == "--magick" goto setmagick 
    8183if "%1" == "--with-gcc" goto withgcc 
    8284if "%1" == "--with-msvc" goto withmsvc 
     
    9193echo Options: 
    9294echo.   --prefix PREFIX         install Emacs in directory PREFIX 
     95echo.   --magick DIRECTORY      ImageMagick directory 
    9396echo.   --with-gcc              use GCC to compile Emacs 
    9497echo.   --with-msvc             use MSVC to compile Emacs 
     
    105108shift 
    106109goto again 
    107 rem ---------------------------------------------------------------------- 
     110em ---------------------------------------------------------------------- 
     111:setmagick 
     112shift 
     113set magick=%1 
     114shift 
     115goto again 
     116+rem ---------------------------------------------------------------------- 
    108117:withgcc 
    109118set COMPILER=gcc 
     
    245254rem ---------------------------------------------------------------------- 
    246255:genmakefiles 
     256if not "("%magick%")" == "()" goto genmakefiles2 
     257echo Error: --magick is not specified. 
     258goto end 
     259 
     260:genmakefiles2 
    247261echo Generating makefiles 
    248262 
     
    257271if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings 
    258272if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings 
     273echo MAGICKDIR=%magick%>>config.settings 
    259274if not "(%usercflags%)" == "()" echo USER_CFLAGS=%usercflags%>>config.settings 
    260275if not "(%userldflags%)" == "()" echo USER_LDFLAGS=%userldflags%>>config.settings 
     
    318333:end 
    319334set prefix= 
     335set magick= 
    320336set nodebug= 
    321337set noopt= 
  • branches/2.1/src/ChangeLog.Meadow

    r3583 r3626  
     12005-03-06  Shuichi KITAGUCHI  <kit@meadowy.org> 
     2 
     3        * mw32magick: removed. (cleanup ImageMagick support) 
     4 
     5        * mw32fns.c: update to ImageMagick 6.2.0. 
     6        cleanup ImageMagick support. 
     7 
     8        * makefile.nt (LOCAL_FLAGS): cleanup ImageMagick support. 
     9 
    1102005-01-08  MIYOSHI Masanori  <miyoshi@meadowy.org> 
    211 
  • branches/2.1/src/makefile.nt

    r3560 r3626  
    4242# the emacs source tree. 
    4343# 
    44 LOCAL_FLAGS     = -Demacs=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I..\nt\inc 
     44LOCAL_FLAGS     = -Demacs=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I..\nt\inc \ 
     45        -I$(MAGICKDIR)\include 
    4546!ifdef NTGUI 
    4647LOCAL_FLAGS     = $(LOCAL_FLAGS) -DHAVE_NTGUI=1 
     
    353354                cd $(BLD) 
    354355                .\temacs.exe -nd -batch -l loadup bootstrap 
     356                if exist Meadow.dmp del Meadow.dmp 
     357                ren emacs.dmp Meadow.dmp 
    355358                if exist Meadow.exe del Meadow.exe 
    356359                ren emacs.exe Meadow.exe 
    357                 if exist Meadow.dmp del Meadow.dmp 
    358                 ren emacs.dmp Meadow.dmp 
    359360                cd ..\.. 
    360361                - mkdir ..\bin 
     
    16101611    $(SRC)\fontset.h \ 
    16111612    $(SRC)\termhooks.h \ 
    1612     $(SRC)\mw32magick.h \ 
    16131613    $(SRC)\mw32rgb.h 
    16141614 
  • branches/2.1/src/mw32fns.c

    r3490 r3626  
    4949#include "termhooks.h" 
    5050#include "atimer.h" 
    51 #include "mw32magick.h" 
    5251 
    5352/* external interfaces */ 
     
    59815980                     ImageMagick Interface. 
    59825981 ***********************************************************************/ 
     5982#define WIN32 
     5983#include <magick/api.h> 
     5984#include <magick/blob-private.h> 
    59835985 
    59845986#define IMAGE_MAGICK_DLL "CORE_RL_magick_.dll" 
    5985 /* #define IMAGE_MAGICK_DLL "CORE_DB_magick_.dll" /* debug dll */ 
    5986 #define IMAGE_MAGICK_REQUIRE_VERSION 0x0601 
     5987#define IMAGE_MAGICK_REQUIRE_VERSION 0x0620 
    59875988 
    59885989Lisp_Object Qxbm, Qpbm, Qxpm, Qjpeg, Qtiff, Qgif, Qpng; 
     
    59965997/* ImageMagick function pointers.  */ 
    59975998 
     5999typedef const char* (*pget_magick_version_t) (unsigned long *); 
    59986000typedef void (*pinitialize_magick_t) (const char *); 
    59996001typedef Image *(*pread_image_t) (const ImageInfo *, ExceptionInfo *); 
    60006002typedef Image *(*pblob_to_image_t) (const ImageInfo *, const void *, 
    60016003                                    const size_t, ExceptionInfo *); 
    6002 typedef ImageInfo *(*pclone_image_info_t) (const ImageInfo *);  
     6004typedef ImageInfo *(*pclone_image_info_t) (const ImageInfo *); 
    60036005typedef void (*pdestroy_image_t) (Image *); 
    60046006typedef void (*pdestroy_image_info_t) (ImageInfo *); 
     
    60066008                                             const unsigned long, 
    60076009                                             const unsigned long); 
    6008 typedef void (*pget_exception_info_t) (ExceptionInfo *);  
    6009 typedef const char* (*pget_magick_version_t) (unsigned int *); 
     6010typedef void (*pget_exception_info_t) (ExceptionInfo *); 
    60106011typedef Image *(*pping_blob_t) (const ImageInfo *, const void *, 
    6011                                 const size_t, ExceptionInfo *);  
    6012 typedef Image *(*pping_image_t) (const ImageInfo *, ExceptionInfo *);  
    6013 typedef void (*pdestroy_image_list_t) (Image *); 
    6014 typedef const MagickInfo* (*pget_magick_info_t) (const char *, 
    6015                                                  ExceptionInfo *);  
    6016 typedef char **(*pget_magick_list_t) (const char *pattern
    6017                                       unsigned long *number_formats); 
     6012                                const size_t, ExceptionInfo *); 
     6013typedef Image *(*pping_image_t) (const ImageInfo *, ExceptionInfo *); 
     6014typedef Image *(*pdestroy_image_list_t) (Image *); 
     6015typedef const MagickInfo *(*pget_magick_info_t) (const char *, 
     6016                                                 ExceptionInfo *); 
     6017typedef char **(*pget_magick_list_t) (const char *, unsigned long *
     6018                                      ExceptionInfo *); 
    60186019typedef IndexPacket *(*pget_indexes_t) (const Image *); 
    6019 typedef unsigned int (*ptransform_rgb_image_t) (Image *, const ColorspaceType); 
     6020typedef MagickBooleanType (*ptransform_rgb_image_t) (Image *, 
     6021                                                     const ColorspaceType); 
    60206022typedef const PixelPacket *(*pacquire_image_pixels_t) (const Image *, 
    60216023                                                       const long, const long, 
     
    60236025                                                       const unsigned long, 
    60246026                                                       ExceptionInfo *); 
    6025 typedef unsigned int (*pis_monochrome_image_t) (const Image *, 
    6026                                                 ExceptionInfo *); 
    6027 typedef void (*pset_image_type_t) (Image *, const ImageType); 
     6027typedef MagickBooleanType (*pis_monochrome_image_t) (const Image *, 
     6028                                                     ExceptionInfo *); 
     6029typedef MagickBooleanType (*pset_image_type_t) (Image *, const ImageType); 
    60286030typedef Image *(*pconstitute_image_t) (const unsigned long, 
    60296031                                       const unsigned long, 
     
    60336035typedef PixelPacket* (*pset_image_pixels_t) (Image *, const long, const long, 
    60346036                                             const unsigned long, 
    6035                                              const unsigned long);  
    6036 typedef unsigned int (*psync_image_pixels_t) (Image *);  
    6037 typedef unsigned int (*popen_blob_t) (const ImageInfo *, Image *, 
    6038                                       const BlobMode, ExceptionInfo *); 
     6037                                             const unsigned long); 
     6038typedef MagickBooleanType (*psync_image_pixels_t) (Image *); 
     6039typedef MagickBooleanType (*popen_blob_t) (const ImageInfo *, Image *, 
     6040                                          const BlobMode, ExceptionInfo *); 
    60396041typedef char *(*pread_blob_string_t) (Image *, char *); 
    60406042typedef void (*pclose_blob_t) (Image *); 
    6041 typedef unsigned int (*pallocate_image_colormap_t) (Image *, 
    6042                                                     const unsigned long); 
    6043 typedef unsigned int (*pquery_color_database_t) (const char *, PixelPacket *, 
    6044                                                  ExceptionInfo *); 
    6045 typedef MagickInfo *(*pregister_magick_info_t) (MagickInfo *);  
     6043typedef MagickBooleanType (*pallocate_image_colormap_t) (Image *, 
     6044                                                         const unsigned long); 
     6045typedef MagickBooleanType (*pquery_color_database_t) (const char *, 
     6046                                                      PixelPacket *, 
     6047                                                      ExceptionInfo *); 
     6048typedef MagickInfo *(*pregister_magick_info_t) (MagickInfo *); 
    60466049typedef MagickInfo *(*pset_magick_info_t) (const char *); 
    6047 typedef void *(*prelinquish_magick_memory_t) (void **memory); 
     6050typedef void *(*prelinquish_magick_memory_t) (void *); 
    60486051typedef void *(*pacquire_string_t) (const char *); 
    60496052typedef const char *(*pget_image_magick_t) (const unsigned char *, 
     
    60526055static HINSTANCE hmagick = NULL; 
    60536056static ExceptionInfo magick_exception; 
     6057 
     6058static pget_magick_version_t pget_magick_version; 
    60546059static pinitialize_magick_t pinitialize_magick; 
    60556060static pread_image_t pread_image; 
     
    60606065static pget_image_pixels_t pget_image_pixels; 
    60616066static pget_exception_info_t pget_exception_info; 
    6062 static pget_magick_version_t pget_magick_version; 
    60636067static pping_blob_t pping_blob; 
    60646068static pping_image_t pping_image; 
     
    60886092/* ImageMagick function wrappers.  */ 
    60896093 
     6094static const char * 
     6095magick_get_magick_version (unsigned long *version) 
     6096{ 
     6097  if (hmagick == NULL || pget_magick_version == NULL) 
     6098    return NULL; 
     6099  return (*pget_magick_version) (version); 
     6100} 
     6101 
    60906102static void 
    6091 magick_initialize_magick (const char* path)  
    6092 { 
    6093   if (pinitialize_magick == NULL) 
     6103magick_initialize_magick (const char *path) 
     6104{ 
     6105  if (hmagick == NULL || pinitialize_magick == NULL) 
    60946106    return; 
    60956107  (*pinitialize_magick) (path); 
    60966108} 
    60976109 
    6098 static void 
    6099 magick_get_exception_info (ExceptionInfo *exception) 
    6100 
    6101   if (pget_exception_info == NULL) 
    6102     return; 
    6103   (*pget_exception_info) (exception); 
    6104 
    6105  
    6106 static ImageInfo* 
    6107 magick_clone_image_info (const ImageInfo *image_info) 
    6108 
    6109   if (pclone_image_info == NULL) 
    6110     return NULL; 
    6111   return (*pclone_image_info) (image_info); 
    6112 
    6113  
    6114 static Image* 
    6115 magick_read_image (const ImageInfo *image_info, ExceptionInfo *exception)  
    6116 
    6117   if (pread_image == NULL) 
     6110static Image * 
     6111magick_read_image (const ImageInfo *image_info, ExceptionInfo *exception) 
     6112
     6113  if (hmagick == NULL || pread_image == NULL) 
    61186114    return NULL; 
    61196115  return (*pread_image) (image_info, exception); 
    61206116} 
    61216117 
    6122 static Image
     6118static Image
    61236119magick_blob_to_image (const ImageInfo *image_info, 
    61246120                      const void *blob, 
    61256121                      const size_t length, 
    6126                       ExceptionInfo *exception)  
    6127 { 
    6128   if (pblob_to_image == NULL) 
     6122                      ExceptionInfo *exception) 
     6123{ 
     6124  if (hmagick == NULL || pblob_to_image == NULL) 
    61296125    return NULL; 
    61306126  return (*pblob_to_image) (image_info, blob, length, exception); 
    61316127} 
    61326128 
     6129static ImageInfo * 
     6130magick_clone_image_info (const ImageInfo *image_info) 
     6131{ 
     6132  if (hmagick == NULL || pclone_image_info == NULL) 
     6133    return NULL; 
     6134  return (*pclone_image_info) (image_info); 
     6135} 
     6136 
    61336137static void 
    6134 magick_destroy_image (Image *image)  
    6135 { 
    6136   if (pdestroy_image == NULL) 
     6138magick_destroy_image (Image *image) 
     6139{ 
     6140  if (hmagick == NULL || pdestroy_image == NULL) 
    61376141    return; 
    61386142  (*pdestroy_image) (image); 
     
    61426146magick_destroy_image_info (ImageInfo *image_info) 
    61436147{ 
    6144   if (pdestroy_image_info == NULL) 
     6148  if (hmagick == NULL || pdestroy_image_info == NULL) 
    61456149    return; 
    61466150  (*pdestroy_image_info) (image_info); 
    61476151} 
    61486152 
    6149 static PixelPacket
     6153static PixelPacket
    61506154magick_get_image_pixels (Image *image, 
    61516155                         const long x, 
     
    61546158                         const unsigned long rows) 
    61556159{ 
    6156   if (pget_image_pixels == NULL) 
     6160  if (hmagick == NULL || pget_image_pixels == NULL) 
    61576161    return NULL; 
    61586162  return (*pget_image_pixels) (image, x, y, columns, rows); 
    61596163} 
    61606164 
    6161 static const char* 
    6162 magick_get_magick_version (unsigned int *version) 
    6163 { 
    6164   if (pget_magick_version == NULL) 
    6165     return NULL
    6166   return (*pget_magick_version) (version); 
    6167 } 
    6168  
    6169 static Image
     6165static void 
     6166magick_get_exception_info (ExceptionInfo *exception) 
     6167{ 
     6168  if (hmagick == NULL || pget_exception_info == NULL) 
     6169    return
     6170  (*pget_exception_info) (exception); 
     6171} 
     6172 
     6173static Image
    61706174magick_ping_blob (const ImageInfo *image_info, 
    61716175                  const void *blob, 
     
    61736177                  ExceptionInfo *exception) 
    61746178{ 
    6175   if (pping_blob == NULL) 
     6179  if (hmagick == NULL || pping_blob == NULL) 
    61766180    return NULL; 
    61776181  return (*pping_blob) (image_info, blob, length, exception); 
    61786182} 
    61796183 
    6180 static Image
     6184static Image
    61816185magick_ping_image (const ImageInfo *image_info, 
    61826186                   ExceptionInfo *exception) 
    61836187{ 
    6184   if (pping_image == NULL) 
     6188  if (hmagick == NULL || pping_image == NULL) 
    61856189    return NULL; 
    61866190  return (*pping_image) (image_info, exception); 
    61876191} 
    61886192 
    6189 static void magick_destroy_image_list (Image *images) 
    6190 
    6191   if (pdestroy_image_list == NULL) 
    6192     return; 
    6193   (*pdestroy_image_list) (images); 
    6194 
    6195  
    6196 static const MagickInfo* 
     6193static Image * 
     6194magick_destroy_image_list (Image *images) 
     6195
     6196  if (hmagick == NULL || pdestroy_image_list == NULL) 
     6197    return NULL; 
     6198  return (*pdestroy_image_list) (images); 
     6199
     6200 
     6201static const MagickInfo * 
    61976202magick_get_magick_info (const char *name, 
    61986203                        ExceptionInfo *exception) 
    61996204{ 
    6200   if (pget_magick_info == NULL) 
     6205  if (hmagick == NULL || pget_magick_info == NULL) 
    62016206    return NULL; 
    62026207  return (*pget_magick_info) (name, exception); 
     
    62046209 
    62056210static char ** 
    6206 magick_get_magick_list (const char *pattern, unsigned long *number_formats) 
    6207 
    6208   if (pget_magick_list == NULL) 
     6211magick_get_magick_list (const char *pattern, 
     6212                        unsigned long *number_formats, 
     6213                        ExceptionInfo *exception) 
     6214
     6215  if (hmagick == NULL || pget_magick_list == NULL) 
    62096216    return NULL; 
    6210   return (*pget_magick_list) (pattern, number_formats); 
     6217  return (*pget_magick_list) (pattern, number_formats, exception); 
    62116218} 
    62126219 
     
    62146221magick_get_indexes (const Image *image) 
    62156222{ 
    6216   if (pget_indexes == NULL) 
     6223  if (hmagick == NULL || pget_indexes == NULL) 
    62176224    return NULL; 
    62186225  return (*pget_indexes) (image); 
    62196226} 
    62206227 
    6221 static unsigned int 
     6228static MagickBooleanType 
    62226229magick_transform_rgb_image (Image *image, const ColorspaceType colorspace) 
    62236230{ 
    6224   if (ptransform_rgb_image == NULL) 
    6225     return 0
     6231  if (hmagick == NULL || ptransform_rgb_image == NULL) 
     6232    return MagickFalse
    62266233  return (*ptransform_rgb_image) (image, colorspace); 
    62276234} 
     
    62346241                             ExceptionInfo *exception) 
    62356242{ 
    6236   if (pacquire_image_pixels == NULL) 
     6243  if (hmagick == NULL || pacquire_image_pixels == NULL) 
    62376244    return NULL; 
    62386245  return (*pacquire_image_pixels) (image, x, y, columns, rows, exception); 
    62396246} 
    62406247 
    6241 static unsigned int 
     6248static MagickBooleanType 
    62426249magick_is_monochrome_image (const Image *image, ExceptionInfo *exception) 
    62436250{ 
    6244   if (pis_monochrome_image == NULL) 
    6245     return 0
     6251  if (hmagick == NULL || pis_monochrome_image == NULL) 
     6252    return MagickFalse
    62466253  return (*pis_monochrome_image) (image, exception); 
    62476254} 
    62486255 
    6249 void 
     6256static MagickBooleanType 
    62506257magick_set_image_type (Image *image, const ImageType image_type) 
    62516258{ 
    6252   if (pset_image_type == NULL) 
    6253     return
    6254   (*pset_image_type) (image, image_type); 
    6255 } 
    6256  
    6257 static Image
     6259  if (hmagick == NULL || pset_image_type == NULL) 
     6260    return MagickFalse
     6261  return (*pset_image_type) (image, image_type); 
     6262} 
     6263 
     6264static Image
    62586265magick_constitute_image (const unsigned long width, const unsigned long height, 
    62596266                         const char *map, const StorageType type, 
    62606267                         const void *pixels, ExceptionInfo *exception) 
    62616268{ 
    6262   if (pconstitute_image == NULL) 
     6269  if (hmagick == NULL || pconstitute_image == NULL) 
    62636270    return NULL; 
    62646271  return (*pconstitute_image) (width, height, map, type, pixels, exception); 
    62656272} 
    62666273 
    6267 static Image
     6274static Image
    62686275magick_allocate_image (const ImageInfo *image_info) 
    62696276{ 
    6270   if (pallocate_image == NULL) 
     6277  if (hmagick == NULL || pallocate_image == NULL) 
    62716278    return NULL; 
    62726279  return (*pallocate_image) (image_info); 
     
    62796286                          const unsigned long rows) 
    62806287{ 
    6281   if (pset_image_pixels == NULL) 
     6288  if (hmagick == NULL || pset_image_pixels == NULL) 
    62826289    return NULL; 
    62836290  return (*pset_image_pixels) (image, x, y, columns, rows); 
    62846291} 
    62856292 
    6286 static unsigned int 
     6293static MagickBooleanType 
    62876294magick_sync_image_pixels (Image *image) 
    62886295{ 
    6289   if (psync_image_pixels == NULL) 
    6290     return 0
     6296  if (hmagick == NULL || psync_image_pixels == NULL) 
     6297    return MagickFalse
    62916298  return (*psync_image_pixels) (image); 
    62926299} 
    62936300 
    6294 static unsigned int 
     6301static MagickBooleanType 
    62956302magick_open_blob (const ImageInfo *image_info, Image *image, 
    62966303                  const BlobMode mode, ExceptionInfo *exception) 
    62976304{ 
    6298   if (popen_blob == NULL) 
    6299     return 0
     6305  if (hmagick == NULL || popen_blob == NULL) 
     6306    return MagickFalse
    63006307  return (*popen_blob) (image_info, image, mode, exception); 
    63016308} 
     
    63046311magick_read_blob_string (Image *image, char *string) 
    63056312{ 
    6306   if (pread_blob_string == NULL) 
     6313  if (hmagick == NULL || pread_blob_string == NULL) 
    63076314    return NULL; 
    63086315  return (*pread_blob_string) (image, string); 
     
    63126319magick_close_blob (Image *image) 
    63136320{ 
    6314   if (pclose_blob == NULL) 
     6321  if (hmagick == NULL || pclose_blob == NULL) 
    63156322    return; 
    63166323  (*pclose_blob) (image); 
    63176324} 
    63186325 
    6319 static unsigned int 
     6326static MagickBooleanType 
    63206327magick_allocate_image_colormap (Image *image, const unsigned long colors) 
    63216328{ 
    6322   if (pallocate_image_colormap == NULL) 
    6323     return 0
     6329  if (hmagick == NULL || pallocate_image_colormap == NULL) 
     6330    return MagickFalse
    63246331  return (*pallocate_image_colormap) (image, colors); 
    63256332} 
    63266333 
    6327 static unsigned int 
     6334static MagickBooleanType 
    63286335magick_query_color_database (const char *name, PixelPacket *color, 
    63296336                             ExceptionInfo *exception) 
    63306337{ 
    6331   if (pquery_color_database == NULL) 
    6332     return 0
     6338  if (hmagick == NULL || pquery_color_database == NULL) 
     6339    return MagickFalse
    63336340  return (*pquery_color_database) (name, color, exception); 
    63346341} 
     
    63376344magick_register_magick_info (MagickInfo *magick_info) 
    63386345{ 
    6339   if (pregister_magick_info == NULL) 
     6346  if (hmagick == NULL || pregister_magick_info == NULL) 
    63406347    return NULL; 
    63416348  return (*pregister_magick_info) (magick_info); 
     
    63456352magick_set_magick_info (const char *name) 
    63466353{ 
    6347   if (pset_magick_info == NULL) 
     6354  if (hmagick == NULL || pset_magick_info == NULL) 
    63486355    return NULL; 
    63496356  return (*pset_magick_info) (name); 
     
    63516358 
    63526359static void * 
    6353 magick_relinquish_magick_memory (void **memory) 
    6354 { 
    6355   if (prelinquish_magick_memory == NULL) 
     6360magick_relinquish_magick_memory (void *memory) 
     6361{ 
     6362  if (hmagick == NULL || prelinquish_magick_memory == NULL) 
    63566363    return NULL; 
    63576364  return (*prelinquish_magick_memory) (memory); 
     
    63616368magick_acquire_string (const char *source) 
    63626369{ 
    6363   if (pacquire_string == NULL) 
     6370  if (hmagick == NULL || pacquire_string == NULL) 
    63646371    return NULL; 
    63656372  return (*pacquire_string) (source); 
     
    63696376magick_get_image_magick (const unsigned char *magick, const size_t length) 
    63706377{ 
    6371   if (pget_image_magick == NULL) 
     6378  if (hmagick == NULL || pget_image_magick == NULL) 
    63726379    return NULL; 
    63736380  return (*pget_image_magick) (magick, length); 
     
    63776384resolve_imagemagick_api (void) 
    63786385{ 
     6386  unsigned long version; 
     6387 
    63796388  hmagick = LoadLibrary (IMAGE_MAGICK_DLL); 
    6380    
    63816389  if (hmagick == NULL) 
    63826390    return 0; 
    63836391 
    6384 #define MAGICK_RESOLVE_FUNC(var, type, name)          \ 
     6392#define MAGICK_RESOLVE_FUNC(var, type, name)          \ 
    63856393do {                                                    \ 
    63866394  (var) = (type) GetProcAddress (hmagick, (name));      \ 
    63876395  if (!(var)) goto error;                               \ 
    63886396} while (0) 
    6389    
     6397 
     6398  /* first, check version number of ImageMagick. */ 
     6399  MAGICK_RESOLVE_FUNC (pget_magick_version, pget_magick_version_t, 
     6400                       "GetMagickVersion"); 
     6401 
     6402  magick_get_magick_version (&version); 
     6403  if (version != IMAGE_MAGICK_REQUIRE_VERSION) /* XXX: strict check. */ 
     6404          goto error; 
     6405 
     6406  /* second, load other function addresses. */ 
    63906407  MAGICK_RESOLVE_FUNC (pinitialize_magick, pinitialize_magick_t, 
    63916408                       "InitializeMagick"); 
    63926409  MAGICK_RESOLVE_FUNC (pread_image, pread_image_t, "ReadImage"); 
     6410  MAGICK_RESOLVE_FUNC (pblob_to_image, pblob_to_image_t, "BlobToImage"); 
    63936411  MAGICK_RESOLVE_FUNC (pclone_image_info, pclone_image_info_t, 
    63946412                       "CloneImageInfo"); 
     
    64006418  MAGICK_RESOLVE_FUNC (pget_exception_info, pget_exception_info_t, 
    64016419                       "GetExceptionInfo"); 
    6402   MAGICK_RESOLVE_FUNC (pblob_to_image, pblob_to_image_t, "BlobToImage"); 
    6403   MAGICK_RESOLVE_FUNC (pget_magick_version, pget_magick_version_t, 
    6404                        "GetMagickVersion"); 
    64056420  MAGICK_RESOLVE_FUNC (pping_blob, pping_blob_t, "PingBlob"); 
    64066421  MAGICK_RESOLVE_FUNC (pping_image, pping_image_t, "PingImage"); 
     
    64466461 
    64476462  return 1; 
    6448    
     6463 
    64496464 error: 
    64506465  FreeLibrary (hmagick); 
     
    72697284} 
    72707285 
    7271 static int 
    7272 imagemagick_version_p (void) 
    7273 { 
    7274   int version; 
    7275    
    7276   magick_get_magick_version (&version); 
    7277  
    7278   if (version < IMAGE_MAGICK_REQUIRE_VERSION) 
    7279     return 0; 
    7280  
    7281   return 1; 
    7282 } 
    7283  
    72847286static Lisp_Object* 
    72857287imagemagick_image_type_lisp_symbol (const char *name) 
     
    73357337  unsigned long nformats; 
    73367338  struct image_type img_type; 
    7337   char **formats = magick_get_magick_list ("*", &nformats); 
     7339  char **formats = magick_get_magick_list ("*", &nformats, &magick_exception); 
    73387340 
    73397341  img_type.valid_p = imagemagick_image_p; 
     
    78037805  if (!resolve_imagemagick_api ()) 
    78047806    return 0; 
    7805  
    7806   if (!imagemagick_version_p ()) 
    7807     { 
    7808       FreeLibrary (hmagick); 
    7809       hmagick = NULL; 
    7810       return 0; 
    7811     } 
    78127807 
    78137808  magick_initialize_magick (NULL);