]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/debug.h
ssize_t is always defined in OSX
[wxWidgets.git] / include / wx / debug.h
index f353646e8bb46eff5c88805de1fa1a5b8cc5acdf..f6f3242e957ce5bd91bda65de2afcfdd50d292c7 100644 (file)
@@ -1,12 +1,12 @@
 /**
-*  Name:        wx/debug.h 
-*  Purpose:     Misc debug functions and macros 
-*  Author:      Vadim Zeitlin 
+*  Name:        wx/debug.h
+*  Purpose:     Misc debug functions and macros
+*  Author:      Vadim Zeitlin
 *  Modified by: Ryan Norton (Converted to C)
-*  Created:     29/01/98 
-*  RCS-ID:      $Id$ 
-*  Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> 
-*  Licence:     wxWindows licence 
+*  Created:     29/01/98
+*  RCS-ID:      $Id$
+*  Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+*  Licence:     wxWindows licence
 */
 
 /* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
@@ -52,7 +52,7 @@
 /*  */
 /*  All debugging macros rely on ASSERT() which in turn calls user-defined */
 /*  OnAssert() function. To keep things simple, it's called even when the */
-/*  expression is TRUE (i.e. everything is ok) and by default does nothing: just */
+/*  expression is true (i.e. everything is ok) and by default does nothing: just */
 /*  returns the same value back. But if you redefine it to do something more sexy */
 /*  (popping up a message box in your favourite GUI, sending you e-mail or */
 /*  whatever) it will affect all ASSERTs, FAILs and CHECKs in your code. */
 #endif  /* __WXDEBUG__ */
 
 #ifdef __cplusplus
-    /*  Use of wxFalse instead of FALSE suppresses compiler warnings about testing */
+    /*  Use of wxFalse instead of false suppresses compiler warnings about testing */
     /*  constant expression */
-    WXDLLIMPEXP_DATA_BASE(extern const bool) wxFalse;
+    extern WXDLLIMPEXP_DATA_BASE(const bool) wxFalse;
 #endif
 
 #define wxAssertFailure wxFalse
 
  It may be used both within a function and in the global scope.
 */
-#define wxCOMPILE_TIME_ASSERT(expr, msg) \
-    struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }
+#ifdef __WATCOMC__
+    /* avoid "unused symbol" warning */
+    #define wxCOMPILE_TIME_ASSERT(expr, msg) \
+        class wxMAKE_UNIQUE_ASSERT_NAME { \
+          unsigned int msg: expr; \
+          wxMAKE_UNIQUE_ASSERT_NAME() { wxUnusedVar(msg); } \
+        }
+#else
+    #define wxCOMPILE_TIME_ASSERT(expr, msg) \
+        struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; }
+#endif
 
 /*
    When using VC++ 6 with "Edit and Continue" on, the compiler completely
 /*  other miscellaneous debugger-related functions */
 /*  ---------------------------------------------------------------------------- */
 
-/*  return true if we're running under debugger */
-/*  */
-/*  currently this only really works under Mac in CodeWarrior builds, it always */
-/*  returns false otherwise */
+/*
+    Return true if we're running under debugger.
+
+    Currently this only really works under Win32 and Mac in CodeWarrior builds,
+    it always returns false in other cases.
+ */
 #ifdef __cplusplus
-    #ifdef __WXMAC__
+    #if defined(__WXMAC__) || defined(__WXMSW__)
         extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning();
     #else /*  !Mac */
         inline bool wxIsDebuggerRunning() { return false; }