]> git.lyx.org Git - lyx.git/blobdiff - src/support/debug.h
Replace the text class shared ptr by good old index-into-global-list.
[lyx.git] / src / support / debug.h
index ac22450384ae233bb6f2d5d55834842f7dbc75e4..d1cd19b112306a9f144badb87e18fa4710100c7b 100644 (file)
@@ -90,6 +90,12 @@ namespace Debug {
                ///
                PAINTING   = (1 << 24),
                ///
+               SCROLLING  = (1 << 25),
+               ///
+               MACROS     = (1 << 26),
+               ///     rtl-related
+               RTL        = (1 << 27),
+               ///
                DEBUG      = (1 << 31),
                ///
                ANY = 0xffffffff
@@ -120,10 +126,13 @@ inline void operator|=(Debug::Type & d1, Debug::Type d2)
 class LyXErr
 {
 public:
+       LyXErr(): enabled_(true) {}
        /// Disable the stream completely
        void disable();
        /// Enable the stream after a possible call of disable()
        void enable();
+       ///
+       bool enabled() const { return enabled_; }
        /// Returns true if t is part of the current debug level.
        bool debugging(Debug::Type t = Debug::ANY) const;
        /// Ends output
@@ -167,27 +176,23 @@ extern LyXErr lyxerr;
 
 } // namespace lyx
 
-// stolen from boost/current_function.hpp
-#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600))
-# define CURRENT_FUNCTION __PRETTY_FUNCTION__
-#elif defined(__FUNCSIG__)
-# define CURRENT_FUNCTION __FUNCSIG__
-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
-# define CURRENT_FUNCTION __FUNCTION__
-#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
-# define CURRENT_FUNCTION __FUNC__
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-# define CURRENT_FUNCTION __func__
+#if USE_BOOST_CURRENT_FUNCTION
+#      include <boost/current_function.hpp>
+#      define CURRENT_POSITION BOOST_CURRENT_FUNCTION ": "
 #else
-# define CURRENT_FUNCTION "(unknown)"
+# define CURRENT_POSITION __FILE__ << "(" << __LINE__ << "): "
 #endif
 
 #define LYXERR(type, msg) \
        do { \
                if (!lyx::lyxerr.debugging(type)) {} \
-               else { lyx::lyxerr << CURRENT_FUNCTION <<": "<<msg; lyx::lyxerr.endl(); } \
+               else { lyx::lyxerr << CURRENT_POSITION << msg; lyx::lyxerr.endl(); } \
+       } while (0)
+
+#define LYXERR0(msg) \
+       do { \
+               lyx::lyxerr << CURRENT_POSITION << msg; lyx::lyxerr.endl(); \
        } while (0)
 
-#define LYXERR0(msg) LYXERR(lyx::Debug::ANY, msg)
 
 #endif