*/
#include <cstdlib> // exit
-#include <cerrno> // errno
-#include <cstring> // strerror
-
-
-namespace Mf {
/**
* Macro which tests an assertion and issues an logError() and exits if false.
- * This differs from the standard assert() in that this is a runtime assertion
- * test and will always be compiled in.
* @param X test to perform
*/
-#define ASSERT(X) if (!(X)) logError("false assertion at %s:%d, " #X \
- " (errno: %d, %s)", __FILE__, __LINE__, errno, strerror(errno)), exit(1)
+#undef ASSERT
+
+#if NDEBUG
+#define ASSERT(X)
+#else
+#define ASSERT(X) if (!(X)) Mf::logError("false assertion at %s:%d, " #X, \
+ __FILE__, __LINE__), exit(1)
+#endif
+
+
+namespace Mf {
/**
* @see LogLevel()
*/
-typedef enum {
- NONE = -1, ///< Disable all logging.
- ERROR = 1, ///< Log only errors.
- WARNING = 2, ///< Log warnings and errors.
- INFO = 3, ///< Log info, warnings, errors.
- DEBUGGING = 4 ///< Log all messages.
-} LogLevel;
+enum LogLevel
+{
+ LOG_NONE = -1, ///< Disable all logging.
+ LOG_ERROR = 1, ///< Log only errors.
+ LOG_WARNING = 2, ///< Log warnings and errors.
+ LOG_SCRIPT = 3, ///< Log messages from Lua, too.
+ LOG_INFO = 4, ///< Log info, warnings, errors.
+ LOG_DEBUG = 5, ///< Log all messages.
+};
/**
void logDebug(const char* fmt, ...);
+void logScript(const char* fmt, ...);
+class Script;
+int logScript(Script& script);
+void importLogPrintFunction(Script& script);
+
} // namespace Mf