Add note about trans_table_19.
[oweals/minetest.git] / src / debug.h
index 8faa65eb85b7898a9e5437ae9706fa869c47f062..f3cfe88b338209bf68ed0a3ba1980253cab9fc0f 100644 (file)
@@ -33,7 +33,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifdef _WIN32
        #define WIN32_LEAN_AND_MEAN
        #include <windows.h>
-       #include <eh.h>
+       #ifdef _MSC_VER
+               #include <eh.h>
+       #endif
 #else
 #endif
 
@@ -76,21 +78,21 @@ public:
                        if(g_debugstreams[i] == stderr && m_disable_stderr)
                                continue;
                        if(g_debugstreams[i] != NULL)
-                               fwrite(&c, 1, 1, g_debugstreams[i]);
+                               (void)fwrite(&c, 1, 1, g_debugstreams[i]);
                        //TODO: Is this slow?
                        fflush(g_debugstreams[i]);
                }
                
                return c;
        }
-       int xsputn(const char *s, int n)
+       std::streamsize xsputn(const char *s, std::streamsize n)
        {
                for(int i=0; i<DEBUGSTREAM_COUNT; i++)
                {
                        if(g_debugstreams[i] == stderr && m_disable_stderr)
                                continue;
                        if(g_debugstreams[i] != NULL)
-                               fwrite(s, 1, n, g_debugstreams[i]);
+                               (void)fwrite(s, 1, n, g_debugstreams[i]);
                        //TODO: Is this slow?
                        fflush(g_debugstreams[i]);
                }
@@ -167,7 +169,10 @@ private:
        bool m_overflowed;
 };
 
-#define DSTACK(...)\
+#define DSTACK(msg)\
+       DebugStacker __debug_stacker(msg);
+
+#define DSTACKF(...)\
        char __buf[DEBUG_STACK_TEXT_SIZE];\
        snprintf(__buf,\
                        DEBUG_STACK_TEXT_SIZE, __VA_ARGS__);\
@@ -238,18 +243,7 @@ private:
                        assert(0);\
                }
        #ifdef _WIN32 // Windows
-
-/*class SE_Exception : public std::exception
-{
-private:
-    unsigned int nSE;
-public:
-    SE_Exception() {}
-    SE_Exception( unsigned int n ) : nSE( n ) {}
-    ~SE_Exception() {}
-    unsigned int getSeNumber() { return nSE; }
-};*/
-
+               #ifdef _MSC_VER // MSVC
 void se_trans_func(unsigned int, EXCEPTION_POINTERS*);
 
 class FatalSystemException : public BaseException
@@ -259,14 +253,18 @@ public:
                BaseException(s)
        {}
 };
-
-               #define BEGIN_DEBUG_EXCEPTION_HANDLER \
-                       BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER\
-                       _set_se_translator(se_trans_func);
-
-               #define END_DEBUG_EXCEPTION_HANDLER \
-                       END_PORTABLE_DEBUG_EXCEPTION_HANDLER
-
+                       #define BEGIN_DEBUG_EXCEPTION_HANDLER \
+                               BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER\
+                               _set_se_translator(se_trans_func);
+
+                       #define END_DEBUG_EXCEPTION_HANDLER \
+                               END_PORTABLE_DEBUG_EXCEPTION_HANDLER
+               #else // Probably mingw
+                       #define BEGIN_DEBUG_EXCEPTION_HANDLER\
+                               BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER
+                       #define END_DEBUG_EXCEPTION_HANDLER\
+                               END_PORTABLE_DEBUG_EXCEPTION_HANDLER
+               #endif
        #else // Posix
                #define BEGIN_DEBUG_EXCEPTION_HANDLER\
                        BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER