45 #define ERR_LIST_MAX_LEN 10
59 extern int ev_err(
char *,
int,
int,
char *,
int);
64 char **err_ptr,
int warn);
73 #define error(err_num,fn_name) ev_err(__FILE__,err_num,__LINE__,fn_name,0)
77 #define warning(err_num,fn_name) ev_err(__FILE__,err_num,__LINE__,fn_name,1)
85 #define ERREXIT() set_err_flag(EF_EXIT)
86 #define ERRABORT() set_err_flag(EF_ABORT)
88 #define SILENTERR() if ( ! setjmp(restart) ) set_err_flag(EF_SILENT)
90 #define ON_ERROR() if ( ! setjmp(restart) ) set_err_flag(EF_JUMP)
113 #define E_SHARED_VECS 19
115 #define E_OVERWRITE 21
116 #define E_BREAKDOWN 22
119 #define WARN_UNKNOWN 0
120 #define WARN_WRONG_TYPE 1
121 #define WARN_NO_MARK 2
122 #define WARN_RES_LESS_0 3
123 #define WARN_SHARED_VEC 4
129 #define catch(errnum,ok_part,err_part) \
130 { jmp_buf _save; int _err_num, _old_flag; \
131 _old_flag = set_err_flag(EF_SILENT); \
132 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
133 if ( (_err_num=setjmp(restart)) == 0 ) \
135 set_err_flag(_old_flag); \
136 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
137 else if ( _err_num == errnum ) \
138 { set_err_flag(_old_flag); \
139 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
141 else { set_err_flag(_old_flag); \
142 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
143 error(_err_num,"catch"); \
149 #define catchall(ok_part,err_part) \
150 { jmp_buf _save; int _err_num, _old_flag; \
151 _old_flag = set_err_flag(EF_SILENT); \
152 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
153 if ( (_err_num=setjmp(restart)) == 0 ) \
155 set_err_flag(_old_flag); \
156 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
158 { set_err_flag(_old_flag); \
159 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
166 #define tracecatch(ok_part,function) \
167 { jmp_buf _save; int _err_num, _old_flag; \
168 _old_flag = set_err_flag(EF_JUMP); \
169 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
170 if ( (_err_num=setjmp(restart)) == 0 ) \
172 set_err_flag(_old_flag); \
173 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
175 { set_err_flag(_old_flag); \
176 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
177 error(_err_num,function); } \
int err_is_list_attached(int list_num)
int ev_err(char *, int, int, char *, int)
int set_err_flag(int flag)
int err_list_attach(int list_num, int list_len, char **err_ptr, int warn)
int err_list_free(int list_num)
int count_errs(int true_false)