diff options
Diffstat (limited to 'fitz/base_error.c')
-rw-r--r-- | fitz/base_error.c | 72 |
1 files changed, 23 insertions, 49 deletions
diff --git a/fitz/base_error.c b/fitz/base_error.c index a2ebbdd5..c0d4a42f 100644 --- a/fitz/base_error.c +++ b/fitz/base_error.c @@ -1,71 +1,45 @@ #include "fitz_base.h" -void -fz_droperror(fz_error *eo) +void fz_warn(char *fmt, ...) { - if (eo->cause) - fz_droperror(eo->cause); - fz_free(eo); + va_list ap; + fprintf(stderr, "warning: "); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); } -void -fz_printerror(fz_error *eo) +fz_error * fz_throwimp(const char *func, const char *file, int line, char *fmt, ...) { -#if 1 - if (eo->cause) - { - fz_printerror(eo->cause); - fprintf(stderr, "| %s:%d: %s(): %s\n", eo->file, eo->line, eo->func, eo->msg); - } - else - { - fprintf(stderr, "+ %s:%d: %s(): %s\n", eo->file, eo->line, eo->func, eo->msg); - } -#else - fprintf(stderr, "+ %s:%d: %s(): %s\n", eo->file, eo->line, eo->func, eo->msg); - eo = eo->cause; - - while (eo) - { - fprintf(stderr, "| %s:%d: %s(): %s\n", eo->file, eo->line, eo->func, eo->msg); - eo = eo->cause; - } -#endif + va_list ap; + fprintf(stderr, "+ %s:%d: %s(): ", file, line, func); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); + return ((fz_error*)-1); } - -void -fz_warn(char *fmt, ...) +fz_error * fz_rethrowimp(fz_error *cause, const char *func, const char *file, int line, char *fmt, ...) { va_list ap; - fprintf(stderr, "warning: "); + fprintf(stderr, "| %s:%d: %s(): ", file, line, func); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fprintf(stderr, "\n"); + return cause; } -fz_error * -fz_throwimp(fz_error *cause, const char *func, const char *file, int line, char *fmt, ...) +fz_error * fz_catchimp(fz_error *cause, const char *func, const char *file, int line, char *fmt, ...) { va_list ap; - fz_error *eo; - - eo = fz_malloc(sizeof(fz_error)); - if (!eo) - return fz_outofmem; /* oops. we're *really* out of memory here. */ - + fprintf(stderr, "\\ %s:%d: %s(): ", file, line, func); va_start(ap, fmt); - vsnprintf(eo->msg, sizeof eo->msg, fmt, ap); - eo->msg[sizeof(eo->msg) - 1] = '\0'; + vfprintf(stderr, fmt, ap); va_end(ap); - - strlcpy(eo->func, func, sizeof eo->func); - strlcpy(eo->file, file, sizeof eo->file); - eo->line = line; - - eo->cause = cause; - - return eo; + fprintf(stderr, "\n"); + return cause; } |