11f55ded7e394e3519007fb0a805ab5dc77f48b9
[imager.git] / imerror.h
1 #ifndef IMAGER_IMERROR_H
2 #define IMAGER_IMERROR_H
3
4 /* error handling 
5    see error.c for documentation
6    the error information is currently global
7 */
8 typedef struct {
9   char *msg;
10   int code;
11 } i_errmsg;
12
13 typedef void (*i_error_cb)(int code, char const *msg);
14 typedef void (*i_failed_cb)(i_errmsg *msgs);
15 extern i_error_cb i_set_error_cb(i_error_cb);
16 extern i_failed_cb i_set_failed_cb(i_failed_cb);
17 extern void i_set_argv0(char const *);
18 extern int i_set_errors_fatal(int new_fatal);
19 extern i_errmsg *i_errors(void);
20
21 extern void im_push_error(pIMCTX, int code, char const *msg);
22 #ifndef IMAGER_NO_CONTEXT
23 extern void i_push_errorf(int code, char const *fmt, ...) I_FORMAT_ATTR(2, 3);
24 #endif
25 extern void im_push_errorf(pIMCTX, int code, char const *fmt, ...) I_FORMAT_ATTR(3, 4);
26 extern void im_push_errorvf(im_context_t ctx, int code, char const *fmt, va_list);
27 extern void im_clear_error(pIMCTX);
28 extern int i_failed(int code, char const *msg);
29
30 #endif