1 #ifndef _WIMLIB_ERROR_H
2 #define _WIMLIB_ERROR_H
4 #include "wimlib.h" /* Get error code definitions */
5 #include "wimlib/compiler.h"
6 #include "wimlib/types.h"
11 # define wimlib_fprintf fwprintf
12 # define wimlib_printf wprintf
15 wimlib_fprintf(FILE *fp, const tchar *format, ...) _format_attribute(printf, 2, 3);
18 wimlib_printf(const tchar *format, ...) _format_attribute(printf, 1, 2);
19 #endif /* !__WIN32__ */
23 dummy_tprintf(const tchar *format, ...) _format_attribute(printf, 1, 2)
28 #ifdef ENABLE_ERROR_MESSAGES
30 wimlib_error(const tchar *format, ...)
31 _format_attribute(printf, 1, 2) _cold_attribute;
34 wimlib_error_with_errno(const tchar *format, ...)
35 _format_attribute(printf, 1, 2) _cold_attribute;
38 wimlib_warning(const tchar *format, ...)
39 _format_attribute(printf, 1, 2) _cold_attribute;
42 wimlib_warning_with_errno(const tchar *format, ...)
43 _format_attribute(printf, 1, 2) _cold_attribute;
44 # define ERROR(format, ...) wimlib_error(T(format), ## __VA_ARGS__)
45 # define ERROR_WITH_ERRNO(format, ...) wimlib_error_with_errno(T(format), ## __VA_ARGS__)
46 # define WARNING(format, ...) wimlib_warning(T(format), ## __VA_ARGS__)
47 # define WARNING_WITH_ERRNO(format, ...) wimlib_warning_with_errno(T(format), ## __VA_ARGS__)
48 #else /* ENABLE_ERROR_MESSAGES */
49 # define ERROR(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
50 # define ERROR_WITH_ERRNO(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
51 # define WARNING(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
52 # define WARNING_WITH_ERRNO(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
53 #endif /* !ENABLE_ERROR_MESSAGES */
55 #if defined(ENABLE_MORE_DEBUG) && !defined(ENABLE_DEBUG)
56 # define ENABLE_DEBUG 1
59 #if defined(ENABLE_MORE_ASSERTIONS) && !defined(ENABLE_ASSERTIONS)
60 # define ENABLE_ASSERTIONS 1
65 wimlib_debug(const tchar *file, int line, const char *func,
66 const tchar *format, ...);
67 # define DEBUG(format, ...) \
68 wimlib_debug(T(__FILE__), __LINE__, __func__, T(format), ## __VA_ARGS__)
71 # define DEBUG(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
72 #endif /* !ENABLE_DEBUG */
74 #ifdef ENABLE_MORE_DEBUG
75 # define DEBUG2(format, ...) DEBUG(format, ## __VA_ARGS__)
77 # define DEBUG2(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__)
78 #endif /* !ENABLE_MORE_DEBUG */
80 #endif /* _WIMLIB_ERROR_H */