summaryrefslogtreecommitdiff
path: root/libyasm/errwarn.c
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2003-06-08 21:21:22 +0000
committerPeter Johnson <peter@tortall.net>2003-06-08 21:21:22 +0000
commitb6f7d0316f7e512316a6cd8fa76e0a6dd7f435e4 (patch)
treebf459281b46ed4817b676af691925e18184338db /libyasm/errwarn.c
parenta6109b9aba59303c408ee810adc74571b1a747d2 (diff)
downloadyasm-b6f7d0316f7e512316a6cd8fa76e0a6dd7f435e4.tar.gz
Make yasm_fatal() and implementations take a list of printf-like parameters.
Also, don't abort(), just exit()... unlike internal errors, which we want a backtrace for, fatal errors may happen during normal operation. svn path=/trunk/yasm/; revision=975
Diffstat (limited to 'libyasm/errwarn.c')
-rw-r--r--libyasm/errwarn.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/libyasm/errwarn.c b/libyasm/errwarn.c
index 7b165021..700a97e3 100644
--- a/libyasm/errwarn.c
+++ b/libyasm/errwarn.c
@@ -26,7 +26,7 @@
*/
#define YASM_LIB_INTERNAL
#include "util.h"
-/*@unused@*/ RCSID("$IdPath: yasm/libyasm/errwarn.c,v 1.56 2003/05/04 01:39:10 peter Exp $");
+/*@unused@*/ RCSID("$IdPath$");
#include <ctype.h>
@@ -45,14 +45,14 @@
/* Default handlers for replacable functions */
static /*@exits@*/ void def_internal_error_
(const char *file, unsigned int line, const char *message);
-static /*@exits@*/ void def_fatal(const char *message);
+static /*@exits@*/ void def_fatal(const char *message, ...);
static const char *def_gettext_hook(const char *msgid);
/* Storage for errwarn's "extern" functions */
/*@exits@*/ void (*yasm_internal_error_)
(const char *file, unsigned int line, const char *message)
= def_internal_error_;
-/*@exits@*/ void (*yasm_fatal) (const char *message) = def_fatal;
+/*@exits@*/ void (*yasm_fatal) (const char *message, ...) = def_fatal;
const char * (*yasm_gettext_hook) (const char *msgid) = def_gettext_hook;
/* Enabled warnings. See errwarn.h for a list. */
@@ -163,15 +163,15 @@ def_internal_error_(const char *file, unsigned int line, const char *message)
* memory), so just exit immediately.
*/
static void
-def_fatal(const char *message)
+def_fatal(const char *fmt, ...)
{
- fprintf(stderr, yasm_gettext_hook(N_("FATAL: %s\n")),
- yasm_gettext_hook(message));
-#ifdef HAVE_ABORT
- abort();
-#else
+ va_list va;
+ fprintf(stderr, "%s: ", yasm_gettext_hook(N_("FATAL")));
+ va_start(va, fmt);
+ vfprintf(stderr, yasm_gettext_hook(fmt), va);
+ va_end(va);
+ fputc('\n', stderr);
exit(EXIT_FAILURE);
-#endif
}
/* Create an errwarn structure in the correct linked list location.