45 #include "EST_error.h"
47 const char * EST_error_where=NULL;
48 static char EST_error_message_buf[MAX_ERROR_MESSAGE_LENGTH];
49 char *EST_error_message = EST_error_message_buf;
51 void EST_default_bug_fn(
const char *format, ...)
54 char *p=EST_error_message;
56 if (EST_error_stream==NULL)
57 EST_error_stream = stderr;
59 fprintf(EST_error_stream,
"-=-=-=-=-=- EST Bug! -=-=-=-=-=-\n");
61 fprintf(EST_error_stream,
" %s\n", EST_error_where);
64 vsprintf(p, format, ap);
66 fprintf(EST_error_stream,
"%s\n", p);
68 fprintf(EST_error_stream,
"Please report this in as much detail as possible\n to festival@cstr.ed.ac.uk\n");
69 putc(
'\n', EST_error_stream);
70 fprintf(EST_error_stream,
"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
74 void EST_default_error_fn(
const char *format, ...)
77 char *p=EST_error_message;
79 if (EST_error_stream==NULL)
80 EST_error_stream = stderr;
82 fprintf(EST_error_stream,
"-=-=-=-=-=- EST Error -=-=-=-=-=-\n");
84 fprintf(EST_error_stream,
" %s\n", EST_error_where);
87 vsprintf(p, format, ap);
89 fprintf(EST_error_stream,
"%s\n", p);
91 fprintf(EST_error_stream,
"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
95 void EST_quiet_error_fn(
const char *format, ...)
98 char *p=EST_error_message;
100 va_start(ap, format);
101 vsprintf(p, format, ap);
107 void EST_default_warning_fn(
const char *format, ...)
110 char *p=EST_error_message;
112 if (EST_warning_stream==NULL)
113 EST_warning_stream = stderr;
115 fprintf(EST_warning_stream,
"-=-=-=-=-=- EST Warning -=-=-=-=-=-\n");
117 fprintf(EST_warning_stream,
" %s\n", EST_error_where);
119 va_start(ap, format);
120 vsprintf(p, format, ap);
122 fprintf(EST_warning_stream,
"%s\n", p);
124 fprintf(EST_warning_stream,
"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
127 void EST_quiet_warning_fn(
const char *format, ...)
130 char *p=EST_error_message;
132 va_start(ap, format);
133 vsprintf(p, format, ap);
137 void EST_default_sys_error_fn(
const char *format, ...)
140 char *p=EST_error_message;
141 const char *msg = strerror(errno);
143 if (EST_error_stream==NULL)
144 EST_error_stream = stderr;
146 fprintf(EST_error_stream,
"-=-=-=-=-=- EST IO Error -=-=-=-=-\n");
148 fprintf(EST_error_stream,
" %s\n", EST_error_where);
150 va_start(ap, format);
151 vsprintf(p, format, ap);
153 fprintf(EST_error_stream,
"%s - %s\n", p, msg);
155 fprintf(EST_error_stream,
"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
159 void EST_quiet_sys_error_fn(
const char *format, ...)
162 char *p=EST_error_message;
163 const char *msg = strerror(errno);
165 va_start(ap, format);
166 vsprintf(p, format, ap);
178 void EST_errors_default()
180 EST_bug_func = EST_default_bug_fn;
181 EST_error_func = EST_default_error_fn;
182 EST_sys_error_func = EST_default_sys_error_fn;
185 void EST_errors_quiet()
187 EST_bug_func = EST_default_bug_fn;
188 EST_error_func = EST_quiet_error_fn;
189 EST_sys_error_func = EST_quiet_sys_error_fn;
192 EST_error_handler EST_bug_func = EST_default_bug_fn;
193 EST_error_handler EST_error_func = EST_default_error_fn;
194 EST_error_handler EST_sys_error_func = EST_default_sys_error_fn;
195 EST_error_handler EST_warning_func = EST_default_warning_fn;
197 EST_error_handler old_error_function;
198 EST_error_handler old_sys_error_function;
200 FILE *EST_error_stream=NULL;
201 FILE *EST_warning_stream=NULL;
203 jmp_buf *est_errjmp = 0;