From: ken Date: Sat, 18 Feb 2017 19:03:51 +0000 (-0800) Subject: error printing update X-Git-Url: https://git.kengrimes.com/?p=henge%2Fapc.git;a=commitdiff_plain;h=0628265d7e697838d836c292d77d0e4ba1b72bbd error printing update --- 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)