]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/magick-type.h
(no commit message)
[imagemagick] / MagickCore / magick-type.h
index 2b18b5e678a93eb3820ec2ab2f0169c7b9f7aaef..a03672052f30d7f40cf675c52d0213fae78a2f58 100644 (file)
@@ -130,6 +130,12 @@ typedef unsigned __int64 MagickSizeType;
 #define MagickSizeFormat  "I64u"
 #endif
 
+#if QuantumDepth > 16
+  typedef double SignedQuantum;
+#else
+  typedef ssize_t SignedQuantum;
+#endif
+
 #if defined(_MSC_VER) && (_MSC_VER == 1200)
 typedef MagickOffsetType QuantumAny;
 #else
@@ -153,6 +159,42 @@ typedef enum
   MagickTrue = 1
 } MagickBooleanType;
 
+/*
+   Define some short-hand macros for handling MagickBooleanType
+   and uses fast C typing with C boolean operations
+
+     Is  -- returns a MagickBooleanType (for storage)
+     If  -- returns C integer boolean (for if's and while's)
+
+   IfMagickTrue()     converts MagickBooleanType to C integer Boolean
+   IfMagickFalse()    Not the MagickBooleanType to C integer Boolean
+
+   IsMagickTrue()     converts a C integer boolean to a MagickBooleanType
+   IsMagickFalse()    converts and is also a MagickBooleanType 'not' operation
+
+   IsMagickNULL()
+   IsMagickNotNULL()  converts C pointers tests MagickBooleanType
+*/
+#if 1
+/* Fast C typing method assumes MagickBooleanType uses match 0,1 values */
+#  define IfMagickTrue(v)  ((int)(v))
+#  define IfMagickFalse(v) (!(int)(v))
+#  define IsMagickTrue(v)  ((MagickBooleanType)((int)(v)!=0))
+#  define IsMagickFalse(v) ((MagickBooleanType)(!(int)(v)))
+#  define IsMagickNot(v)   ((MagickBooleanType)(!(int)(v)))
+#else
+/* Do not depend MagickBooleanValues */
+#  define IfMagickTrue(v)  ((v) != MagickFalse)
+#  define IfMagickFalse(v) ((v) == MagickFalse)
+#  define IsMagickTrue(v)  ((v)?MagickTrue:MagickFalse)
+#  define IsMagickFalse(v) ((v)?MagickFalse:MagickTrue)
+#  define IsMagickNot(v)   (IfMagickTrue(v)?MagickFalse:MagickTrue)
+#endif
+#define IfStringTrue(v)       IfMagickTrue(IsStringTrue(v))
+#define IfStringNotFalse(v)   IfMagickTrue(IsStringNotFalse(v))
+#define IsMagickNULL(v)       (((void *)(v) == NULL)?MagickTrue:MagickFalse)
+#define IsMagickNotNULL(v)    (((void *)(v) != NULL)?MagickTrue:MagickFalse)
+
 typedef struct _BlobInfo BlobInfo;
 
 typedef struct _ExceptionInfo ExceptionInfo;