scyther/src/error.c

73 lines
1.3 KiB
C
Raw Normal View History

2004-06-12 15:20:07 +01:00
#include <stdio.h>
#include <stdarg.h>
#include "error.h"
//! Die from error with exit code
void
error_die (void)
{
2006-01-02 21:06:08 +00:00
exit (EXIT_ERROR);
}
//! Print error message header
/**
* Adapted from [K&R2], p. 174
*@todo It would be nice to redirect all output to stderr, which would enable use of termprint etc.
*/
void
error_pre (void)
{
fprintf (stderr, "error: ");
}
//! Print post-error message and die.
2004-06-12 15:20:07 +01:00
/**
* Adapted from [K&R2], p. 174
* Input is comparable to printf, only end of line is not required.
*/
void
error_post (char *fmt, ...)
2004-06-12 15:20:07 +01:00
{
va_list args;
va_start (args, fmt);
vfprintf (stderr, fmt, args);
2004-06-12 15:20:07 +01:00
fprintf (stderr, "\n");
va_end (args);
2006-01-02 21:06:08 +00:00
exit (EXIT_ERROR);
2004-06-12 15:20:07 +01:00
}
//! Print error message and die.
/**
* Adapted from [K&R2], p. 174
* Input is comparable to printf, only end of line is not required.
*/
void
error (char *fmt, ...)
{
va_list args;
error_pre ();
va_start (args, fmt);
vfprintf (stderr, fmt, args);
fprintf (stderr, "\n");
va_end (args);
error_die ();
}
//! Print warning
/**
* Input is comparable to printf, only end of line is not required.
*/
void
warning (char *fmt, ...)
{
va_list args;
va_start (args, fmt);
fprintf (stderr, "warning: ");
vfprintf (stderr, fmt, args);
fprintf (stderr, "\n");
va_end (args);
}