X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Ferror.h;h=45e8f14ff8bf5c7164a44324270ae7c3f1a17592;hp=7de749d3911a08e9abb5237567465de3a3ed1ff2;hb=e6a50e92c221b5c4ce2d86caa1ba2093b20f3ac3;hpb=e8c3ca2d1d0cac3d64985b45a9f654d2029a7518 diff --git a/include/wimlib/error.h b/include/wimlib/error.h index 7de749d3..45e8f14f 100644 --- a/include/wimlib/error.h +++ b/include/wimlib/error.h @@ -1,75 +1,61 @@ #ifndef _WIMLIB_ERROR_H #define _WIMLIB_ERROR_H +#include + #include "wimlib.h" /* Get error code definitions */ #include "wimlib/compiler.h" #include "wimlib/types.h" -#include - -#ifdef __WIN32__ -# define wimlib_fprintf fwprintf -# define wimlib_printf wprintf -#else /* __WIN32__ */ -extern int -wimlib_fprintf(FILE *fp, const tchar *format, ...) FORMAT(printf, 2, 3); - -extern int -wimlib_printf(const tchar *format, ...) FORMAT(printf, 1, 2); -#endif /* !__WIN32__ */ - - -static inline int dummy_tprintf(const tchar *format, ...) +static inline int _format_attribute(printf, 1, 2) +dummy_tprintf(const tchar *format, ...) { return 0; } #ifdef ENABLE_ERROR_MESSAGES extern void -wimlib_error(const tchar *format, ...) FORMAT(printf, 1, 2) COLD; +wimlib_error(const tchar *format, ...) + _format_attribute(printf, 1, 2) _cold_attribute; extern void -wimlib_error_with_errno(const tchar *format, ...) FORMAT(printf, 1, 2) COLD; +wimlib_error_with_errno(const tchar *format, ...) + _format_attribute(printf, 1, 2) _cold_attribute; extern void -wimlib_warning(const tchar *format, ...) FORMAT(printf, 1, 2) COLD; +wimlib_warning(const tchar *format, ...) + _format_attribute(printf, 1, 2) _cold_attribute; extern void -wimlib_warning_with_errno(const tchar *format, ...) FORMAT(printf, 1, 2) COLD; +wimlib_warning_with_errno(const tchar *format, ...) + _format_attribute(printf, 1, 2) _cold_attribute; # define ERROR(format, ...) wimlib_error(T(format), ## __VA_ARGS__) -# define ERROR_WITH_ERRNO(format, ...) wimlib_error_with_errno(T(format), ## __VA_ARGS__) +# define ERROR_WITH_ERRNO(format, ...) wimlib_error_with_errno(T(format), ## __VA_ARGS__) # define WARNING(format, ...) wimlib_warning(T(format), ## __VA_ARGS__) # define WARNING_WITH_ERRNO(format, ...) wimlib_warning_with_errno(T(format), ## __VA_ARGS__) +extern bool wimlib_print_errors; +extern FILE *wimlib_error_file; #else /* ENABLE_ERROR_MESSAGES */ +# define wimlib_print_errors 0 +# define wimlib_error_file NULL # define ERROR(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) # define ERROR_WITH_ERRNO(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) # define WARNING(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) # define WARNING_WITH_ERRNO(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) #endif /* !ENABLE_ERROR_MESSAGES */ -#if defined(ENABLE_MORE_DEBUG) && !defined(ENABLE_DEBUG) -# define ENABLE_DEBUG 1 -#endif - -#if defined(ENABLE_MORE_ASSERTIONS) && !defined(ENABLE_ASSERTIONS) -# define ENABLE_ASSERTIONS 1 -#endif - #ifdef ENABLE_DEBUG extern void wimlib_debug(const tchar *file, int line, const char *func, const tchar *format, ...); # define DEBUG(format, ...) \ - wimlib_debug(T(__FILE__), __LINE__, __func__, T(format), ## __VA_ARGS__) + wimlib_debug(T(__FILE__), __LINE__, __func__, T(format), ## __VA_ARGS__) #else # define DEBUG(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) #endif /* !ENABLE_DEBUG */ -#ifdef ENABLE_MORE_DEBUG -# define DEBUG2(format, ...) DEBUG(format, ## __VA_ARGS__) -#else -# define DEBUG2(format, ...) dummy_tprintf(T(format), ## __VA_ARGS__) -#endif /* !ENABLE_MORE_DEBUG */ +extern void +print_byte_field(const u8 *field, size_t len, FILE *out); #endif /* _WIMLIB_ERROR_H */