00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _MAGICKWAND_STUDIO_H
00019 #define _MAGICKWAND_STUDIO_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 #if defined(__CYGWIN32__)
00026 # if !defined(__CYGWIN__)
00027 # define __CYGWIN__ __CYGWIN32__
00028 # endif
00029 #endif
00030
00031 #if defined(_WIN32) || defined(WIN32)
00032 # if !defined(__WINDOWS__)
00033 # if defined(_WIN32)
00034 # define __WINDOWS__ _WIN32
00035 # else
00036 # if defined(WIN32)
00037 # define __WINDOWS__ WIN32
00038 # endif
00039 # endif
00040 # endif
00041 #endif
00042
00043 #if defined(_WIN64) || defined(WIN64)
00044 # if !defined(__WINDOWS__)
00045 # if defined(_WIN64)
00046 # define __WINDOWS__ _WIN64
00047 # else
00048 # if defined(WIN64)
00049 # define __WINDOWS__ WIN64
00050 # endif
00051 # endif
00052 # endif
00053 #endif
00054
00055 #if !defined(vms) && !defined(macintosh) && !defined(__WINDOWS__)
00056 # define MAGICKCORE_POSIX_SUPPORT
00057 #endif
00058
00059 #define MAGICKWAND_IMPLEMENTATION 1
00060
00061 #if !defined(_MAGICKWAND_CONFIG_H)
00062 # define _MAGICKWAND_CONFIG_H
00063 # if !defined(vms) && !defined(macintosh)
00064 # include "magick/magick-config.h"
00065 # else
00066 # include "magick-config.h"
00067 # endif
00068 # if defined(__cplusplus) || defined(c_plusplus)
00069 # undef inline
00070 # endif
00071 #endif
00072
00073 #if !defined(const)
00074 # define STDC
00075 #endif
00076
00077 #if defined(__BORLANDC__) && defined(_DLL)
00078 # pragma message("BCBMagick lib DLL export interface")
00079 # define _MAGICKDLL_
00080 # define _MAGICKLIB_
00081 #endif
00082
00083 #if defined(__WINDOWS__)
00084 # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
00085 # define _MAGICKDLL_
00086 # endif
00087 # if defined(_MAGICKDLL_)
00088 # if defined(_VISUALC_)
00089 # pragma warning( disable: 4273 )
00090 # endif
00091 # if !defined(_MAGICKLIB_)
00092 # define WandExport __declspec(dllimport)
00093 # if defined(_VISUALC_)
00094 # pragma message( "MagickWand lib DLL import interface" )
00095 # endif
00096 # else
00097 # define WandExport __declspec(dllexport)
00098 # if defined(_VISUALC_)
00099 # pragma message( "MagickWand lib DLL export interface" )
00100 # endif
00101 # endif
00102 # else
00103 # define WandExport
00104 # if defined(_VISUALC_)
00105 # pragma message( "MagickWand lib static interface" )
00106 # endif
00107 # endif
00108
00109 # if defined(_DLL) && !defined(_LIB)
00110 # define ModuleExport __declspec(dllexport)
00111 # if defined(_VISUALC_)
00112 # pragma message( "MagickWand module DLL export interface" )
00113 # endif
00114 # else
00115 # define ModuleExport
00116 # if defined(_VISUALC_)
00117 # pragma message( "MagickWand module static interface" )
00118 # endif
00119
00120 # endif
00121 # define WandGlobal __declspec(thread)
00122 # if defined(_VISUALC_)
00123 # pragma warning(disable : 4018)
00124 # pragma warning(disable : 4068)
00125 # pragma warning(disable : 4244)
00126 # pragma warning(disable : 4142)
00127 # pragma warning(disable : 4800)
00128 # pragma warning(disable : 4786)
00129 # pragma warning(disable : 4996)
00130 # endif
00131 #else
00132 # define WandExport
00133 # define ModuleExport
00134 # define WandGlobal
00135 #endif
00136
00137 #if defined(__cplusplus) || defined(c_plusplus)
00138 # define storage_class c_class
00139 #else
00140 # define storage_class class
00141 #endif
00142
00143 #define WandSignature 0xabacadabUL
00144 #if !defined(MaxTextExtent)
00145 # define MaxTextExtent 4096
00146 #endif
00147
00148 #include <stdarg.h>
00149 #include <stdio.h>
00150 #if defined(__WINDOWS__) && defined(_DEBUG)
00151 #define _CRTDBG_MAP_ALLOC
00152 #endif
00153 #include <stdlib.h>
00154 #if !defined(__WINDOWS__)
00155 # include <unistd.h>
00156 #else
00157 # include <direct.h>
00158 # if !defined(MAGICKCORE_HAVE_STRERROR)
00159 # define HAVE_STRERROR
00160 # endif
00161 #endif
00162
00163 #if defined(MAGICKCORE_HAVE_STRINGS_H)
00164 # include <strings.h>
00165 #endif
00166 #include <string.h>
00167 #include <ctype.h>
00168 #include <locale.h>
00169 #include <errno.h>
00170 #include <fcntl.h>
00171 #include <math.h>
00172 #include <time.h>
00173 #include <limits.h>
00174 #include <signal.h>
00175 #include <assert.h>
00176
00177 #if defined(MAGICKCORE_HAVE_PREAD) && defined(MAGICKCORE_HAVE_DECL_PREAD) && !MAGICKCORE_HAVE_DECL_PREAD
00178 ssize_t pread(int,void *,size_t,off_t);
00179 #endif
00180
00181 #if defined(MAGICKCORE_HAVE_PWRITE) && defined(MAGICKCORE_HAVE_DECL_PWRITE) && !MAGICKCORE_HAVE_DECL_PWRITE
00182 ssize_t pwrite(int,const void *,size_t,off_t);
00183 #endif
00184
00185 #if defined(MAGICKCORE_HAVE_STRLCPY) && defined(MAGICKCORE_HAVE_DECL_STRLCPY) && !MAGICKCORE_HAVE_DECL_STRLCPY
00186 extern size_t strlcpy(char *,const char *,size_t);
00187 #endif
00188
00189 #if defined(MAGICKCORE_HAVE_VSNPRINTF) && defined(MAGICKCORE_HAVE_DECL_VSNPRINTF) && !MAGICKCORE_HAVE_DECL_VSNPRINTF
00190 extern int vsnprintf(char *,size_t,const char *,va_list);
00191 #endif
00192
00193 #if !defined(wand_attribute)
00194 # if !defined(__GNUC__)
00195 # define wand_attribute(x)
00196 # else
00197 # define wand_attribute __attribute__
00198 # endif
00199 #endif
00200
00201 #if !defined(wand_unused)
00202 # if defined(__GNUC__)
00203 # define wand_unused(x) wand_unused_ ## x __attribute__((unused))
00204 # elif defined(__LCLINT__)
00205 # define wand_unused(x) x
00206 # else
00207 # define wand_unused(x) x
00208 # endif
00209 #endif
00210
00211 #if defined(__WINDOWS__) || defined(MAGICKCORE_POSIX_SUPPORT)
00212 # include <sys/types.h>
00213 # include <sys/stat.h>
00214 # if defined(MAGICKCORE_HAVE_FTIME)
00215 # include <sys/timeb.h>
00216 # endif
00217 # if defined(MAGICKCORE_POSIX_SUPPORT)
00218 # if defined(MAGICKCORE_HAVE_SYS_NDIR_H) || defined(MAGICKCORE_HAVE_SYS_DIR_H) || defined(MAGICKCORE_HAVE_NDIR_H)
00219 # define dirent direct
00220 # define NAMLEN(dirent) (dirent)->d_namlen
00221 # if defined(MAGICKCORE_HAVE_SYS_NDIR_H)
00222 # include <sys/ndir.h>
00223 # endif
00224 # if defined(MAGICKCORE_HAVE_SYS_DIR_H)
00225 # include <sys/dir.h>
00226 # endif
00227 # if defined(MAGICKCORE_HAVE_NDIR_H)
00228 # include <ndir.h>
00229 # endif
00230 # else
00231 # include <dirent.h>
00232 # define NAMLEN(dirent) strlen((dirent)->d_name)
00233 # endif
00234 # include <sys/wait.h>
00235 # include <pwd.h>
00236 # endif
00237 # if !defined(S_ISDIR)
00238 # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
00239 # endif
00240 # if !defined(S_ISREG)
00241 # define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
00242 # endif
00243 # include "wand/MagickWand.h"
00244 # if !defined(__WINDOWS__)
00245 # include <sys/time.h>
00246 # if defined(MAGICKCORE_HAVE_SYS_TIMES_H)
00247 # include <sys/times.h>
00248 # endif
00249 # if defined(MAGICKCORE_HAVE_SYS_RESOURCE_H)
00250 # include <sys/resource.h>
00251 # endif
00252 #endif
00253 #else
00254 # include <types.h>
00255 # include <stat.h>
00256 # if defined(macintosh)
00257 # if !defined(DISABLE_SIOUX)
00258 # include <SIOUX.h>
00259 # include <console.h>
00260 # endif
00261 # include <unix.h>
00262 # endif
00263 # include "wand/MagickWand.h"
00264 #endif
00265
00266 #if defined(S_IRUSR) && defined(S_IWUSR)
00267 # define S_MODE (S_IRUSR | S_IWUSR)
00268 #elif defined (__WINDOWS__)
00269 # define S_MODE (_S_IREAD | _S_IWRITE)
00270 #else
00271 # define S_MODE 0600
00272 #endif
00273
00274 #if defined(__WINDOWS__)
00275 # include "magick/nt-base.h"
00276 #endif
00277 #if defined(macintosh)
00278 # include "magick/mac.h"
00279 #endif
00280 #if defined(vms)
00281 # include "magick/vms.h"
00282 #endif
00283
00284 #undef index
00285 #undef pipe
00286
00287
00288
00289
00290 #if defined(MAGICKCORE_POSIX_SUPPORT)
00291 # define DirectorySeparator "/"
00292 # define DirectoryListSeparator ':'
00293 # define EditorOptions " -title \"Edit Image Comment\" -e vi"
00294 # define Exit exit
00295 # define IsBasenameSeparator(c) ((c) == '/' ? MagickTrue : MagickFalse)
00296 # define X11_PREFERENCES_PATH "~/."
00297 # define ProcessPendingEvents(text)
00298 # define ReadCommandlLine(argc,argv)
00299 # define SetNotifyHandlers
00300 #else
00301 # if defined(vms)
00302 # define X11_APPLICATION_PATH "decw$system_defaults:"
00303 # define DirectorySeparator ""
00304 # define DirectoryListSeparator ';'
00305 # define EditorOptions ""
00306 # define Exit exit
00307 # define IsBasenameSeparator(c) \
00308 (((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse)
00309 # define MAGICKCORE_LIBRARY_PATH "sys$login:"
00310 # define MAGICKCORE_CODER_PATH "sys$login:"
00311 # define MAGICKCORE_FILTER_PATH "sys$login:"
00312 # define MAGICKCORE_SHARE_PATH "sys$login:"
00313 # define X11_PREFERENCES_PATH "decw$user_defaults:"
00314 # define ProcessPendingEvents(text)
00315 # define ReadCommandlLine(argc,argv)
00316 # define SetNotifyHandlers
00317 # endif
00318 # if defined(macintosh)
00319 # define X11_APPLICATION_PATH "/usr/lib/X11/app-defaults/"
00320 # define DirectorySeparator ":"
00321 # define DirectoryListSeparator ';'
00322 # define EditorOptions ""
00323 # define IsBasenameSeparator(c) ((c) == ':' ? MagickTrue : MagickFalse)
00324 # define MAGICKCORE_LIBRARY_PATH ""
00325 # define MAGICKCORE_CODER_PATH ""
00326 # define MAGICKCORE_FILTER_PATH ""
00327 # define MAGICKCORE_SHARE_PATH ""
00328 # define X11_PREFERENCES_PATH "~/."
00329 # if defined(DISABLE_SIOUX)
00330 # define ReadCommandlLine(argc,argv)
00331 # define SetNotifyHandlers \
00332 SetFatalErrorHandler(MacFatalErrorHandler); \
00333 SetErrorHandler(MACErrorHandler); \
00334 SetWarningHandler(MACWarningHandler)
00335 # else
00336 # define ReadCommandlLine(argc,argv) argc=ccommand(argv); puts(MagickVersion);
00337 # define SetNotifyHandlers \
00338 SetErrorHandler(MACErrorHandler); \
00339 SetWarningHandler(MACWarningHandler)
00340 # endif
00341 # endif
00342 # if defined(__WINDOWS__)
00343 # define DirectorySeparator "\\"
00344 # define DirectoryListSeparator ';'
00345 # define EditorOptions ""
00346 # define IsBasenameSeparator(c) \
00347 (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
00348 # define ProcessPendingEvents(text)
00349 # if !defined(X11_PREFERENCES_PATH)
00350 # define X11_PREFERENCES_PATH "~\\."
00351 # endif
00352 # define ReadCommandlLine(argc,argv)
00353 # define SetNotifyHandlers \
00354 SetErrorHandler(NTErrorHandler); \
00355 SetWarningHandler(NTWarningHandler)
00356 # undef sleep
00357 # define sleep(seconds) Sleep(seconds*1000)
00358 # if !defined(MAGICKCORE_HAVE_TIFFCONF_H)
00359 # define HAVE_TIFFCONF_H
00360 # endif
00361 # endif
00362
00363 #endif
00364
00365
00366
00367
00368 #if !defined(STDIN_FILENO)
00369 #define STDIN_FILENO 0x00
00370 #endif
00371
00372 #if !defined(O_BINARY)
00373 #define O_BINARY 0x00
00374 #endif
00375
00376
00377
00378
00379 #if defined(__WINDOWS__) && !defined(Windows95) && !defined(__BORLANDC__)
00380 #define MagickSeek(file,offset,whence) _lseeki64(file,offset,whence)
00381 #define MagickTell(file) _telli64(file)
00382 #else
00383 #define MagickSeek(file,offset,whence) lseek(file,offset,whence)
00384 #define MagickTell(file) tell(file)
00385 #endif
00386
00387 #define ThrowWandFatalException(severity,tag,context) \
00388 { \
00389 ExceptionInfo \
00390 *exception; \
00391 \
00392 exception=AcquireExceptionInfo(); \
00393 (void) ThrowMagickException(exception,GetMagickModule(),severity,tag, \
00394 "`%s'",context); \
00395 CatchException(exception); \
00396 exception=DestroyExceptionInfo(exception); \
00397 }
00398
00399 #if defined(__cplusplus) || defined(c_plusplus)
00400 }
00401 #endif
00402
00403 #endif