Go to the documentation of this file.
18 #ifndef MAGICKCORE_STUDIO_H
19 #define MAGICKCORE_STUDIO_H
21 #if defined(__cplusplus) || defined(c_plusplus)
25 #if defined(WIN32) || defined(WIN64)
26 # define MAGICKCORE_WINDOWS_SUPPORT
28 # define MAGICKCORE_POSIX_SUPPORT
31 #define MAGICKCORE_IMPLEMENTATION 1
33 #if !defined(MAGICKCORE_CONFIG_H)
34 # define MAGICKCORE_CONFIG_H
35 # if !defined(vms) && !defined(macintosh)
40 #if defined(MAGICKCORE__FILE_OFFSET_BITS) && !defined(_FILE_OFFSET_BITS)
41 # define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS
43 #if __cplusplus > 199711L
46 #if defined(_magickcore_const) && !defined(const)
47 # define const _magickcore_const
49 #if defined(_magickcore_inline) && !defined(inline)
50 # define inline _magickcore_inline
52 # if defined(__cplusplus) || defined(c_plusplus)
57 #if defined(MAGICKCORE_NAMESPACE_PREFIX)
67 #if defined(MAGICKCORE_HAVE_SYS_STAT_H)
68 # include <sys/stat.h>
70 #if defined(MAGICKCORE_STDC_HEADERS)
74 # if defined(MAGICKCORE_HAVE_STDLIB_H)
78 #if !defined(magick_restrict)
79 # if !defined(_magickcore_restrict)
80 # define magick_restrict restrict
82 # define magick_restrict _magickcore_restrict
85 #if defined(MAGICKCORE_HAVE_STRING_H)
86 # if !defined(STDC_HEADERS) && defined(MAGICKCORE_HAVE_MEMORY_H)
91 #if defined(MAGICKCORE_HAVE_STRINGS_H)
94 #if defined(MAGICKCORE_HAVE_INTTYPES_H)
95 # include <inttypes.h>
97 #if defined(MAGICKCORE_HAVE_STDINT_H)
100 #if defined(MAGICKCORE_HAVE_UNISTD_H)
103 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DEBUG)
104 #define _CRTDBG_MAP_ALLOC
106 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
109 # if !defined(MAGICKCORE_HAVE_STRERROR)
110 # define HAVE_STRERROR
124 #if defined(MAGICKCORE_HAVE_XLOCALE_H)
125 # include <xlocale.h>
127 #if defined(MAGICKCORE_THREAD_SUPPORT)
128 # include <pthread.h>
129 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
130 #include <winsock2.h>
131 #include <ws2tcpip.h>
133 #pragma comment (lib, "ws2_32.lib")
135 #if defined(MAGICKCORE_HAVE_SYS_SYSLIMITS_H)
136 # include <sys/syslimits.h>
138 #if defined(MAGICKCORE_HAVE_ARM_LIMITS_H)
139 # include <arm/limits.h>
142 #if defined(MAGICKCORE__OPENCL) && !defined(MAGICK_PIXEL_RGBA)
143 #if defined(MAGICKCORE_HAVE_CL_CL_H)
146 #if defined(MAGICKCORE_HAVE_OPENCL_CL_H)
147 # include <OpenCL/cl.h>
149 # define MAGICKCORE_OPENCL_SUPPORT 1
152 #if defined(_OPENMP) && ((_OPENMP >= 200203) || defined(__OPENCC__))
154 # define MAGICKCORE_OPENMP_SUPPORT 1
157 #if defined(MAGICKCORE_HAVE_PREAD) && defined(MAGICKCORE_HAVE_DECL_PREAD) && !MAGICKCORE_HAVE_DECL_PREAD
158 ssize_t pread(
int,
void *,
size_t,off_t);
161 #if defined(MAGICKCORE_HAVE_PWRITE) && defined(MAGICKCORE_HAVE_DECL_PWRITE) && !MAGICKCORE_HAVE_DECL_PWRITE
162 ssize_t pwrite(
int,
const void *,
size_t,off_t);
165 #if defined(MAGICKCORE_HAVE_STRLCPY) && defined(MAGICKCORE_HAVE_DECL_STRLCPY) && !MAGICKCORE_HAVE_DECL_STRLCPY
166 extern size_t strlcpy(
char *,
const char *,
size_t);
169 #if defined(MAGICKCORE_HAVE_VSNPRINTF) && defined(MAGICKCORE_HAVE_DECL_VSNPRINTF) && !MAGICKCORE_HAVE_DECL_VSNPRINTF
170 extern int vsnprintf(
char *,
size_t,
const char *,va_list);
175 #if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(MAGICKCORE_POSIX_SUPPORT)
176 # include <sys/types.h>
177 # include <sys/stat.h>
178 # if defined(MAGICKCORE_HAVE_SYS_TIMEB_H)
179 # include <sys/timeb.h>
181 # if defined(MAGICKCORE_POSIX_SUPPORT)
182 # if defined(MAGICKCORE_HAVE_SYS_NDIR_H) || defined(MAGICKCORE_HAVE_SYS_DIR_H) || defined(MAGICKCORE_HAVE_NDIR_H)
183 # define dirent direct
184 # define NAMLEN(dirent) (dirent)->d_namlen
185 # if defined(MAGICKCORE_HAVE_SYS_NDIR_H)
186 # include <sys/ndir.h>
188 # if defined(MAGICKCORE_HAVE_SYS_DIR_H)
189 # include <sys/dir.h>
191 # if defined(MAGICKCORE_HAVE_NDIR_H)
196 # define NAMLEN(dirent) strlen((dirent)->d_name)
198 # include <sys/wait.h>
201 # if !defined(S_ISDIR)
202 # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
204 # if !defined(S_ISREG)
205 # define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
208 # if !defined(MAGICKCORE_WINDOWS_SUPPORT)
209 # include <sys/time.h>
210 # if defined(MAGICKCORE_HAVE_SYS_TIMES_H)
211 # include <sys/times.h>
213 # if defined(MAGICKCORE_HAVE_SYS_RESOURCE_H)
214 # include <sys/resource.h>
216 # if defined(MAGICKCORE_HAVE_SYS_MMAN_H)
217 # include <sys/mman.h>
219 # if defined(MAGICKCORE_HAVE_SYS_SENDFILE_H)
220 # include <sys/sendfile.h>
226 # if defined(macintosh)
227 # if !defined(DISABLE_SIOUX)
229 # include <console.h>
236 #if defined(S_IRUSR) && defined(S_IWUSR)
237 # define S_MODE (S_IRUSR | S_IWUSR)
238 #elif defined (MAGICKCORE_WINDOWS_SUPPORT)
239 # define S_MODE (_S_IREAD | _S_IWRITE)
244 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
247 #if defined(macintosh)
263 #if ( defined(MAGICKCORE_POSIX_SUPPORT) && !defined(__OS2__) ) && !defined( __VMS )
264 # define DirectorySeparator "/"
265 # define DirectoryListSeparator ':'
266 # define EditorOptions " -title \"Edit Image Comment\" -e vi"
268 # define IsBasenameSeparator(c) ((c) == '/' ? MagickTrue : MagickFalse)
269 # define X11_PREFERENCES_PATH "~/."
270 # define ProcessPendingEvents(text)
271 # define ReadCommandlLine(argc,argv)
272 # define SetNotifyHandlers
275 # define X11_APPLICATION_PATH "decw$system_defaults:"
276 # define DirectorySeparator ""
277 # define DirectoryListSeparator ';'
278 # define EditorOptions ""
280 # define IsBasenameSeparator(c) \
281 (((c) == ']') || ((c) == ':') || ((c) == '/') ? MagickTrue : MagickFalse)
282 # define MAGICKCORE_LIBRARY_PATH "sys$login:"
283 # define MAGICKCORE_SHARE_PATH "sys$login:"
284 # define X11_PREFERENCES_PATH "decw$user_defaults:"
285 # define ProcessPendingEvents(text)
286 # define ReadCommandlLine(argc,argv)
287 # define SetNotifyHandlers
289 # if defined(__OS2__)
290 # define DirectorySeparator "\\"
291 # define DirectoryListSeparator ';'
292 # define EditorOptions " -title \"Edit Image Comment\" -e vi"
294 # define IsBasenameSeparator(c) \
295 (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
296 # define PreferencesDefaults "~\."
297 # define ProcessPendingEvents(text)
298 # define ReadCommandlLine(argc,argv)
299 # define SetNotifyHandlers
301 # if defined(macintosh)
302 # define X11_APPLICATION_PATH "/usr/lib/X11/app-defaults/"
303 # define DirectorySeparator ":"
304 # define DirectoryListSeparator ';'
305 # define EditorOptions ""
306 # define IsBasenameSeparator(c) ((c) == ':' ? MagickTrue : MagickFalse)
307 # define MAGICKCORE_LIBRARY_PATH ""
308 # define MAGICKCORE_SHARE_PATH ""
309 # define X11_PREFERENCES_PATH "~/."
310 # if defined(DISABLE_SIOUX)
311 # define ReadCommandlLine(argc,argv)
312 # define SetNotifyHandlers \
313 SetFatalErrorHandler(MacFatalErrorHandler); \
314 SetErrorHandler(MACErrorHandler); \
315 SetWarningHandler(MACWarningHandler)
317 # define ReadCommandlLine(argc,argv) argc=ccommand(argv); puts(MagickVersion);
318 # define SetNotifyHandlers \
319 SetErrorHandler(MACErrorHandler); \
320 SetWarningHandler(MACWarningHandler)
323 # if defined(MAGICKCORE_WINDOWS_SUPPORT)
324 # define DirectorySeparator "\\"
325 # define DirectoryListSeparator ';'
326 # define EditorOptions ""
327 # define IsBasenameSeparator(c) \
328 (((c) == '/') || ((c) == '\\') ? MagickTrue : MagickFalse)
329 # define ProcessPendingEvents(text)
330 # if !defined(X11_PREFERENCES_PATH)
331 # define X11_PREFERENCES_PATH "~\\."
333 # define ReadCommandlLine(argc,argv)
334 # define SetNotifyHandlers \
335 SetErrorHandler(NTErrorHandler); \
336 SetWarningHandler(NTWarningHandler)
337 # if !defined(MAGICKCORE_HAVE_TIFFCONF_H)
338 # define HAVE_TIFFCONF_H
347 #if !defined(STDIN_FILENO)
348 #define STDIN_FILENO 0x00
351 #if !defined(O_BINARY)
352 #define O_BINARY 0x00
355 #if !defined(PATH_MAX)
356 #define PATH_MAX 4096
359 #if defined(MAGICKCORE_LTDL_DELEGATE) || (defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DLL) && !defined(_LIB))
360 # define MAGICKCORE_MODULES_SUPPORT
363 #if defined(_MAGICKMOD_)
364 # undef MAGICKCORE_BUILD_MODULES
365 # define MAGICKCORE_BUILD_MODULES
371 #define Swap(x,y) ((x)^=(y), (y)^=(x), (x)^=(y))
372 #if defined(_MSC_VER)
373 # define DisableMSCWarning(nr) __pragma(warning(push)) \
374 __pragma(warning(disable:nr))
375 # define RestoreMSCWarning __pragma(warning(pop))
377 # define DisableMSCWarning(nr)
378 # define RestoreMSCWarning
381 #if defined(__cplusplus) || defined(c_plusplus)