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_list_free(int list_num)
int err_list_attach(int list_num, int list_len, char **err_ptr, int warn)
int count_errs(int true_false)
int set_err_flag(int flag)
int err_is_list_attached(int list_num)
int ev_err(char *, int, int, char *, int)