From 0628265d7e697838d836c292d77d0e4ba1b72bbd Mon Sep 17 00:00:00 2001 From: ken Date: Sat, 18 Feb 2017 11:03:51 -0800 Subject: [PATCH] error printing update --- src/ir.c | 3 +-- src/print.h | 33 +++++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/ir.c b/src/ir.c index 3577d48..e860bd7 100644 --- a/src/ir.c +++ b/src/ir.c @@ -17,12 +17,11 @@ #include //u32_cpy #include //ulc_fprintf /* Local */ +#define eprintf_callback(...) exit(EXIT_FAILURE) #include "print.h" #include "apc.h" #include "ir.h" #include "pagenode.h" -#undef do_error -#define do_error(...) exit(-1) #define XXH_PRIVATE_API #include "../xxHash/xxhash.h" /* Public */ diff --git a/src/print.h b/src/print.h index 6e1c4ba..2f44970 100644 --- a/src/print.h +++ b/src/print.h @@ -11,28 +11,45 @@ #ifndef DEBUG #define DEBUG 0 #endif +/* wprintf callback, may be defined prior to include + or undefined and redefined later +*/ +#ifndef wprintf_callback +#define wprintf_callback(...) do { \ + } while (0) +#endif +/* eprintf callback, may be defined prior to include + or undefined and redefined later +*/ +#ifndef eprintf_callback +#define eprintf_callback(...) do { \ + } while (0) +#endif + +/* Print a unicode string */ #define uprintf(...) do { \ - ulc_fprintf(stdout, __VA_ARGS__); \ + ulc_fprintf(stdout, __VA_ARGS__); \ } while (0) +/* Print a unicode string to a filestream */ #define ufprintf(_STREAM,...) do { \ - ulc_fprintf(_STREAM, __VA_ARGS__); \ - } while (0) -#define do_warn(...) do { \ + ulc_fprintf(_STREAM, __VA_ARGS__); \ } while (0) +/* Print a warning message to stderr, then do_warn */ #define wprintf(...) do { \ ufprintf(stderr, __VA_ARGS__); \ - do_warn(__VA_ARGS__); \ - } while (0) -#define do_error(...) do { \ + wprintf_callback(__VA_ARGS__); \ } while (0) +/* Print an error message to stderr, then do_error */ #define eprintf(...) do { \ ufprintf(stderr, __VA_ARGS__); \ - do_error(__VA_ARGS_); \ + eprintf_callback(__VA_ARGS_); \ } while (0) +/* Print only when the provided boolean is true */ #define bprintf(_BOOL,...) do { \ if (_BOOL) \ ufprintf(stdout, __VA_ARGS__); \ } while (0) +/* Print only when DEBUG is set to a value */ #define dprintf(...) do { \ bprintf(DEBUG, __VA_ARGS__); \ } while (0) -- 2.18.0