MagickCore  7.1.0
version.c
Go to the documentation of this file.
1 /*
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 % %
4 % %
5 % %
6 % V V EEEEE RRRR SSSSS IIIII OOO N N %
7 % V V E R R SS I O O NN N %
8 % V V EEE RRRR SSS I O O N N N %
9 % V V E R R SS I O O N NN %
10 % V EEEEE R R SSSSS IIIII OOO N N %
11 % %
12 % %
13 % MagickCore Version and Copyright Methods %
14 % %
15 % Software Design %
16 % Cristy %
17 % September 2002 %
18 % %
19 % %
20 % Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
21 % dedicated to making software imaging solutions freely available. %
22 % %
23 % You may not use this file except in compliance with the License. You may %
24 % obtain a copy of the License at %
25 % %
26 % https://imagemagick.org/script/license.php %
27 % %
28 % Unless required by applicable law or agreed to in writing, software %
29 % distributed under the License is distributed on an "AS IS" BASIS, %
30 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
31 % See the License for the specific language governing permissions and %
32 % limitations under the License. %
33 % %
34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35 %
36 %
37 */
38 
39 #include "MagickCore/studio.h"
40 #include "MagickCore/configure.h"
41 #include "MagickCore/exception.h"
43 #include "MagickCore/linked-list.h"
44 #include "MagickCore/locale_.h"
45 #include "MagickCore/option.h"
46 #include "MagickCore/string_.h"
47 #include "MagickCore/utility.h"
49 #include "MagickCore/version.h"
51 
52 /*
53  Define declarations.
54 */
55 #define MagickURLFilename "index.html"
56 
57 /*
58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 % %
60 % %
61 % %
62 % G e t M a g i c k C o p y r i g h t %
63 % %
64 % %
65 % %
66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67 %
68 % GetMagickCopyright() returns the ImageMagick API copyright as a string.
69 %
70 % The format of the GetMagickCopyright method is:
71 %
72 % const char *GetMagickCopyright(void)
73 %
74 */
76 {
77  return(MagickCopyright);
78 }
79 
80 /*
81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82 % %
83 % %
84 % %
85 % G e t M a g i c k D e l e g a t e s %
86 % %
87 % %
88 % %
89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90 %
91 % GetMagickDelegates() returns the ImageMagick delegate libraries.
92 %
93 % The format of the GetMagickDelegates method is:
94 %
95 % const char *GetMagickDelegates(void)
96 %
97 % No parameters are required.
98 %
99 */
101 {
102  return ""
103 #if defined(MAGICKCORE_AUTOTRACE_DELEGATE)
104  "autotrace "
105 #endif
106 #if defined(MAGICKCORE_BZLIB_DELEGATE)
107  "bzlib "
108 #endif
109 #if defined(MAGICKCORE_CAIRO_DELEGATE)
110  "cairo "
111 #endif
112 #if defined(MAGICKCORE_DJVU_DELEGATE)
113  "djvu "
114 #endif
115 #if defined(MAGICKCORE_DPS_DELEGATE)
116  "dps "
117 #endif
118 #if defined(MAGICKCORE_EMF_DELEGATE)
119  "emf "
120 #endif
121 #if defined(MAGICKCORE_FFTW_DELEGATE)
122  "fftw "
123 #endif
124 #if defined(MAGICKCORE_FLIF_DELEGATE)
125  "flif "
126 #endif
127 #if defined(MAGICKCORE_FONTCONFIG_DELEGATE)
128  "fontconfig "
129 #endif
130 #if defined(MAGICKCORE_FPX_DELEGATE)
131  "fpx "
132 #endif
133 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
134  "freetype "
135 #endif
136 #if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
137  "gslib "
138 #endif
139 #if defined(MAGICKCORE_GVC_DELEGATE)
140  "gvc "
141 #endif
142 #if defined(MAGICKCORE_HEIC_DELEGATE)
143  "heic "
144 #endif
145 #if defined(MAGICKCORE_JBIG_DELEGATE)
146  "jbig "
147 #endif
148 #if defined(MAGICKCORE_JPEG_DELEGATE) && defined(MAGICKCORE_PNG_DELEGATE)
149  "jng "
150 #endif
151 #if defined(MAGICKCORE_LIBOPENJP2_DELEGATE)
152  "jp2 "
153 #endif
154 #if defined(MAGICKCORE_JPEG_DELEGATE)
155  "jpeg "
156 #endif
157 #if defined(MAGICKCORE_JXL_DELEGATE)
158  "jxl "
159 #endif
160 #if defined(MAGICKCORE_LCMS_DELEGATE)
161  "lcms "
162 #endif
163 #if defined(MAGICKCORE_LQR_DELEGATE)
164  "lqr "
165 #endif
166 #if defined(MAGICKCORE_LTDL_DELEGATE)
167  "ltdl "
168 #endif
169 #if defined(MAGICKCORE_LZMA_DELEGATE)
170  "lzma "
171 #endif
172 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
173  "openexr "
174 #endif
175 #if defined(MAGICKCORE_PANGOCAIRO_DELEGATE)
176  "pangocairo "
177 #endif
178 #if defined(MAGICKCORE_PNG_DELEGATE)
179  "png "
180 #endif
181 #if defined(MAGICKCORE_DPS_DELEGATE) || defined(MAGICKCORE_GS_DELEGATE) || \
182  defined(MAGICKCORE_WINDOWS_SUPPORT)
183  "ps "
184 #endif
185 #if defined(MAGICKCORE_RAQM_DELEGATE)
186  "raqm "
187 #endif
188 #if defined(MAGICKCORE_RAW_R_DELEGATE)
189  "raw "
190 #endif
191 #if defined(MAGICKCORE_RSVG_DELEGATE)
192  "rsvg "
193 #endif
194 #if defined(MAGICKCORE_TIFF_DELEGATE)
195  "tiff "
196 #endif
197 #if defined(MAGICKCORE_WEBP_DELEGATE)
198  "webp "
199 #endif
200 #if defined(MAGICKCORE_WMF_DELEGATE) || defined (MAGICKCORE_WMFLITE_DELEGATE)
201  "wmf "
202 #endif
203 #if defined(MAGICKCORE_X11_DELEGATE)
204  "x "
205 #endif
206 #if defined(MAGICKCORE_XML_DELEGATE)
207  "xml "
208 #endif
209 #if defined(MAGICKCORE_ZIP_DELEGATE)
210  "zip "
211 #endif
212 #if defined(MAGICKCORE_ZLIB_DELEGATE)
213  "zlib"
214 #endif
215  ;
216 }
217 
218 /*
219 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
220 % %
221 % %
222 % %
223 % G e t M a g i c k F e a t u r e s %
224 % %
225 % %
226 % %
227 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228 %
229 % GetMagickFeatures() returns the ImageMagick features.
230 %
231 % The format of the GetMagickFeatures method is:
232 %
233 % const char *GetMagickFeatures(void)
234 %
235 % No parameters are required.
236 %
237 */
239 {
240  return ""
241 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_DEBUG)
242  "Debug "
243 #endif
244 #if defined(MAGICKCORE_CIPHER_SUPPORT)
245  "Cipher "
246 #endif
247 #if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(MAGICKCORE_HAVE_SOCKET) && defined(MAGICKCORE_THREAD_SUPPORT)
248  "DPC "
249 #endif
250 #if defined(MAGICKCORE_HDRI_SUPPORT)
251  "HDRI "
252 #endif
253 #if defined(MAGICKCORE_BUILD_MODULES) || defined(_DLL)
254  "Modules "
255 #endif
256 #if defined(MAGICKCORE_OPENCL_SUPPORT)
257  "OpenCL "
258 #endif
259 #if defined(MAGICKCORE_OPENMP_SUPPORT)
260  "OpenMP"
261 #if _OPENMP == 199810
262  "(1.0) "
263 #elif _OPENMP == 200203
264  "(2.0) "
265 #elif _OPENMP == 200505
266  "(2.5) "
267 #elif _OPENMP == 200805
268  "(3.0) "
269 #elif _OPENMP == 201107
270  "(3.1) "
271 #elif _OPENMP == 201307
272  "(4.0) "
273 #elif _OPENMP == 201511
274  "(4.5) "
275 #elif _OPENMP == 201811
276  "(5.0) "
277 #else
278  " "
279 #endif
280 #endif
281 #if defined(MAGICKCORE_HAVE_TCMALLOC)
282  "TCMalloc "
283 #endif
284 #if defined(ZERO_CONFIGURATION_SUPPORT)
285  "Zero-configuration "
286 #endif
287 #if (MAGICKCORE_QUANTUM_DEPTH == 64)
288  "Q64 (experimental, not for production) "
289 #endif
290  ;
291 }
292 
293 /*
294 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
295 % %
296 % %
297 % %
298 % G e t M a g i c k H o m e U R L %
299 % %
300 % %
301 % %
302 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
303 %
304 % GetMagickHomeURL() returns the ImageMagick home URL.
305 %
306 % The format of the GetMagickHomeURL method is:
307 %
308 % char *GetMagickHomeURL(void)
309 %
310 */
312 {
313  char
314  path[MagickPathExtent];
315 
316  const char
317  *element;
318 
320  *exception;
321 
323  *paths;
324 
325  exception=AcquireExceptionInfo();
326  paths=GetConfigurePaths(MagickURLFilename,exception);
327  exception=DestroyExceptionInfo(exception);
328  if (paths == (LinkedListInfo *) NULL)
329  return(ConstantString(MagickHomeURL));
330  element=(const char *) GetNextValueInLinkedList(paths);
331  while (element != (const char *) NULL)
332  {
333  (void) FormatLocaleString(path,MagickPathExtent,"%s%s%s",element,
335  if (IsPathAccessible(path) != MagickFalse)
336  {
338  return(ConstantString(path));
339  }
340  element=(const char *) GetNextValueInLinkedList(paths);
341  }
343  return(ConstantString(MagickHomeURL));
344 }
345 
346 /*
347 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
348 % %
349 % %
350 % %
351 % G e t M a g i c k L i c e n s e %
352 % %
353 % %
354 % %
355 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356 %
357 % GetMagickLicense() returns the ImageMagick API license as a string.
358 %
359 % The format of the GetMagickLicense method is:
360 %
361 % const char *GetMagickLicense(void)
362 %
363 */
365 {
367 }
368 
369 /*
370 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
371 % %
372 % %
373 % %
374 % G e t M a g i c k P a c k a g e N a m e %
375 % %
376 % %
377 % %
378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
379 %
380 % GetMagickPackageName() returns the ImageMagick package name.
381 %
382 % The format of the GetMagickName method is:
383 %
384 % const char *GetMagickName(void)
385 %
386 % No parameters are required.
387 %
388 */
390 {
391  return(MagickPackageName);
392 }
393 
394 /*
395 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
396 % %
397 % %
398 % %
399 % G e t M a g i c k Q u a n t u m D e p t h %
400 % %
401 % %
402 % %
403 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404 %
405 % GetMagickQuantumDepth() returns the ImageMagick quantum depth.
406 %
407 % The format of the GetMagickQuantumDepth method is:
408 %
409 % const char *GetMagickQuantumDepth(size_t *depth)
410 %
411 % A description of each parameter follows:
412 %
413 % o depth: the quantum depth is returned as a number.
414 %
415 */
416 MagickExport const char *GetMagickQuantumDepth(size_t *depth)
417 {
418  if (depth != (size_t *) NULL)
419  *depth=(size_t) MAGICKCORE_QUANTUM_DEPTH;
420  return(MagickQuantumDepth);
421 }
422 
423 /*
424 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
425 % %
426 % %
427 % %
428 % G e t M a g i c k Q u a n t u m R a n g e %
429 % %
430 % %
431 % %
432 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
433 %
434 % GetMagickQuantumRange() returns the ImageMagick quantum range.
435 %
436 % The format of the GetMagickQuantumRange method is:
437 %
438 % const char *GetMagickQuantumRange(size_t *range)
439 %
440 % A description of each parameter follows:
441 %
442 % o range: the quantum range is returned as a number.
443 %
444 */
445 MagickExport const char *GetMagickQuantumRange(size_t *range)
446 {
447  if (range != (size_t *) NULL)
448  *range=(size_t) QuantumRange;
449  return(MagickQuantumRange);
450 }
451 
452 /*
453 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
454 % %
455 % %
456 % %
457 % G e t M a g i c k R e l e a s e D a t e %
458 % %
459 % %
460 % %
461 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
462 %
463 % GetMagickReleaseDate() returns the ImageMagick release date.
464 %
465 % The format of the GetMagickReleaseDate method is:
466 %
467 % const char *GetMagickReleaseDate(void)
468 %
469 % No parameters are required.
470 %
471 */
473 {
474  return(MagickReleaseDate);
475 }
476 
477 /*
478 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
479 % %
480 % %
481 % %
482 % G e t M a g i c k S i g n a t u r e %
483 % %
484 % %
485 % %
486 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487 %
488 % GetMagickSignature() returns a signature that uniquely encodes the
489 % MagickCore libary version, quantum depth, HDRI status, OS word size, and
490 % endianness.
491 %
492 % The format of the GetMagickSignature method is:
493 %
494 % unsigned int GetMagickSignature(const StringInfo *nonce)
495 %
496 % A description of each parameter follows:
497 %
498 % o nonce: arbitrary data.
499 %
500 */
501 
502 static unsigned int CRC32(const unsigned char *message,const size_t length)
503 {
504  ssize_t
505  i;
506 
507  static MagickBooleanType
508  crc_initial = MagickFalse;
509 
510  static unsigned int
511  crc_xor[256];
512 
513  unsigned int
514  crc;
515 
516  /*
517  Generate a 32-bit cyclic redundancy check for the message.
518  */
519  if (crc_initial == MagickFalse)
520  {
521  unsigned int
522  j;
523 
524  unsigned int
525  alpha;
526 
527  for (j=0; j < 256; j++)
528  {
529  ssize_t
530  k;
531 
532  alpha=j;
533  for (k=0; k < 8; k++)
534  alpha=(alpha & 0x01) ? (0xEDB88320 ^ (alpha >> 1)) : (alpha >> 1);
535  crc_xor[j]=alpha;
536  }
537  crc_initial=MagickTrue;
538  }
539  crc=0xFFFFFFFF;
540  for (i=0; i < (ssize_t) length; i++)
541  crc=crc_xor[(crc ^ message[i]) & 0xff] ^ (crc >> 8);
542  return(crc ^ 0xFFFFFFFF);
543 }
544 
545 MagickExport unsigned int GetMagickSignature(const StringInfo *nonce)
546 {
547  unsigned char
548  *p;
549 
550  StringInfo
551  *version;
552 
553  unsigned int
554  signature;
555 
557  p=GetStringInfoDatum(version);
558  signature=MAGICKCORE_QUANTUM_DEPTH;
559  (void) memcpy(p,&signature,sizeof(signature));
560  p+=sizeof(signature);
561  signature=MAGICKCORE_HDRI_ENABLE;
562  (void) memcpy(p,&signature,sizeof(signature));
563  p+=sizeof(signature);
564  signature=MagickLibInterface;
565  (void) memcpy(p,&signature,sizeof(signature));
566  p+=sizeof(signature);
567  signature=1; /* endianness */
568  (void) memcpy(p,&signature,sizeof(signature));
569  p+=sizeof(signature);
570  SetStringInfoLength(version,p-GetStringInfoDatum(version));
571  if (nonce != (const StringInfo *) NULL)
572  ConcatenateStringInfo(version,nonce);
573  signature=CRC32(GetStringInfoDatum(version),GetStringInfoLength(version));
574  version=DestroyStringInfo(version);
575  return(signature);
576 }
577 
578 /*
579 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
580 % %
581 % %
582 % %
583 % G e t M a g i c k V e r s i o n %
584 % %
585 % %
586 % %
587 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
588 %
589 % GetMagickVersion() returns the ImageMagick API version as a string and
590 % as a number.
591 %
592 % The format of the GetMagickVersion method is:
593 %
594 % const char *GetMagickVersion(size_t *version)
595 %
596 % A description of each parameter follows:
597 %
598 % o version: the ImageMagick version is returned as a number.
599 %
600 */
601 MagickExport const char *GetMagickVersion(size_t *version)
602 {
603  if (version != (size_t *) NULL)
604  *version=MagickLibVersion;
605  return(MagickVersion);
606 }
607 
608 /*
609 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
610 % %
611 % %
612 % %
613 % L i s t M a g i c k V e r s i o n %
614 % %
615 % %
616 % %
617 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618 %
619 % ListMagickVersion() identifies the ImageMagick version by printing its
620 % attributes to the file. Attributes include the copyright, features, and
621 % delegates.
622 %
623 % The format of the ListMagickVersion method is:
624 %
625 % void ListMagickVersion(FILE *file)
626 %
627 % A description of each parameter follows:
628 %
629 % o file: the file, typically stdout.
630 %
631 */
633 {
634  (void) FormatLocaleFile(file,"Version: %s\n",
635  GetMagickVersion((size_t *) NULL));;
636  (void) FormatLocaleFile(file,"Copyright: %s\n",GetMagickCopyright());
637  (void) FormatLocaleFile(file,"License: %s\n",GetMagickLicense());
638  (void) FormatLocaleFile(file,"Features: %s\n",GetMagickFeatures());
639  (void) FormatLocaleFile(file,"Delegates (built-in): %s\n",
641 #if defined(MAGICKCORE_MSC_VER)
642  (void) FormatLocaleFile(file,"Compiler: Visual Studio %d (%d)\n",
643  MAGICKCORE_MSC_VER,_MSC_FULL_VER);
644 #elif defined(__GNUC__)
645  (void) FormatLocaleFile(file,"Compiler: gcc (%d.%d)\n",__GNUC__,
646  __GNUC_MINOR__);
647 #elif defined(__clang__)
648  (void) FormatLocaleFile(file,"Compiler: clang (%d.%d.%d)\n",__clang_major__,
649  __clang_minor__,__clang_patchlevel__);
650 #elif defined(__MINGW32_MAJOR_VERSION)
651  (void) FormatLocaleFile(file,"Compiler: MinGW (%d.%d)\n",
652  __MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION);
653 #elif defined(__MINGW64_VERSION_MAJOR)
654  (void) FormatLocaleFile(file,"Compiler: MinGW-w64 (%d.%d)\n",
655  __MINGW64_VERSION_MAJOR ,__MINGW64_VERSION_MINOR);
656 #endif
657  if (IsEventLogging() != MagickFalse)
658  {
659  (void) FormatLocaleFile(file,"Wizard attributes: ");
660  (void) FormatLocaleFile(file,"QuantumRange=%g; ",(double) QuantumRange);
661  (void) FormatLocaleFile(file,"QuantumScale=%.*g; ",GetMagickPrecision(),
662  (double) QuantumScale);
663  (void) FormatLocaleFile(file,"MagickEpsilon=%.*g; ",GetMagickPrecision(),
664  (double) MagickEpsilon);
665  (void) FormatLocaleFile(file,"MaxMap=%g; ",(double) MaxMap);
666  (void) FormatLocaleFile(file,"MagickPathExtent=%g; ",
667  (double) MagickPathExtent);
668  (void) FormatLocaleFile(file,"sizeof(Quantum)=%g; ",(double)
669  sizeof(Quantum));
670  (void) FormatLocaleFile(file,"sizeof(MagickSizeType)=%g; ",(double)
671  sizeof(MagickSizeType));
672  (void) FormatLocaleFile(file,"sizeof(MagickOffsetType)=%g",(double)
673  sizeof(MagickOffsetType));
674  }
675 }
#define MagickLibInterface
Definition: version.h:34
#define MagickAuthoritativeLicense
Definition: version.h:43
MagickExport const char * GetMagickPackageName(void)
Definition: version.c:389
MagickExport const char * GetMagickDelegates(void)
Definition: version.c:100
#define MagickQuantumDepth
Definition: version.h:60
MagickExport LinkedListInfo * DestroyLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
Definition: linked-list.c:219
#define MagickURLFilename
Definition: version.c:55
#define MagickPackageName
Definition: version.h:28
MagickExport char * GetMagickHomeURL(void)
Definition: version.c:311
MagickExport void ListMagickVersion(FILE *file)
Definition: version.c:632
MagickExport ExceptionInfo * AcquireExceptionInfo(void)
Definition: exception.c:115
MagickExport void ConcatenateStringInfo(StringInfo *string_info, const StringInfo *source)
Definition: string.c:518
MagickExport ssize_t FormatLocaleString(char *magick_restrict string, const size_t length, const char *magick_restrict format,...)
Definition: locale.c:463
#define MAGICKCORE_QUANTUM_DEPTH
Definition: magick-type.h:32
MagickExport const char * GetMagickFeatures(void)
Definition: version.c:238
MagickExport unsigned int GetMagickSignature(const StringInfo *nonce)
Definition: version.c:545
#define MagickEpsilon
Definition: magick-type.h:114
ssize_t MagickOffsetType
Definition: magick-type.h:133
MagickExport const char * GetMagickLicense(void)
Definition: version.c:364
static unsigned int CRC32(const unsigned char *message, const size_t length)
Definition: version.c:502
#define MagickVersion
Definition: version.h:63
MagickExport void * GetNextValueInLinkedList(LinkedListInfo *list_info)
Definition: linked-list.c:305
MagickExport unsigned char * GetStringInfoDatum(const StringInfo *string_info)
Definition: string.c:1176
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
Definition: locale.c:368
MagickBooleanType
Definition: magick-type.h:165
#define DirectorySeparator
Definition: studio.h:264
MagickExport StringInfo * DestroyStringInfo(StringInfo *string_info)
Definition: string.c:815
#define MagickLibVersion
Definition: version.h:30
MagickExport const char * GetMagickReleaseDate(void)
Definition: version.c:472
MagickExport const char * GetMagickQuantumDepth(size_t *depth)
Definition: version.c:416
size_t MagickSizeType
Definition: magick-type.h:134
#define MagickPathExtent
MagickExport MagickBooleanType IsEventLogging(void)
Definition: log.c:725
MagickExport int GetMagickPrecision(void)
Definition: magick.c:942
#define MagickHomeURL
Definition: version.h:46
MagickExport MagickBooleanType IsPathAccessible(const char *path)
Definition: utility.c:1492
MagickExport const char * GetMagickVersion(size_t *version)
Definition: version.c:601
#define QuantumScale
Definition: magick-type.h:119
MagickExport const char * GetMagickQuantumRange(size_t *range)
Definition: version.c:445
MagickExport const char * GetMagickCopyright(void)
Definition: version.c:75
#define MaxMap
Definition: magick-type.h:79
MagickExport StringInfo * AcquireStringInfo(const size_t length)
Definition: string.c:151
MagickExport LinkedListInfo * GetConfigurePaths(const char *filename, ExceptionInfo *exception)
Definition: configure.c:734
unsigned short Quantum
Definition: magick-type.h:86
MagickExport void SetStringInfoLength(StringInfo *string_info, const size_t length)
Definition: string.c:1706
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
#define MagickExport
#define MagickReleaseDate
Definition: version.h:42
MagickExport size_t GetStringInfoLength(const StringInfo *string_info)
Definition: string.c:1205
MagickExport char * ConstantString(const char *source)
Definition: string.c:678
#define MagickCopyright
Definition: version.h:29
#define QuantumRange
Definition: magick-type.h:87
#define MagickQuantumRange
Definition: version.h:61
MagickExport ExceptionInfo * DestroyExceptionInfo(ExceptionInfo *exception)
Definition: exception.c:418