mirror of
https://github.com/NikitaIvanovV/ctpv.git
synced 2024-12-01 00:43:08 +01:00
Remove error messages traceback (there's gdb)
Move "internal error" to print_int_error function
This commit is contained in:
parent
2f94ff15af
commit
8b79ff432f
18
src/error.c
18
src/error.c
@ -3,8 +3,6 @@
|
||||
#include "error.h"
|
||||
#include "utils.h"
|
||||
|
||||
int err_internal_error = 0;
|
||||
|
||||
void print_error(const char *error_msg)
|
||||
{
|
||||
/* We print errors to stdout because lf file manager
|
||||
@ -15,7 +13,21 @@ void print_error(const char *error_msg)
|
||||
|
||||
void print_errorf(const char *format, ...)
|
||||
{
|
||||
char s[1024];
|
||||
char s[512];
|
||||
FORMATTED_STRING(s, format);
|
||||
|
||||
print_error(s);
|
||||
}
|
||||
|
||||
void print_int_error(const char *file, unsigned long line, const char *msg)
|
||||
{
|
||||
print_errorf("%s:%lu: internal error: %s", file, line, msg);
|
||||
}
|
||||
|
||||
void print_int_errorf(const char *file, unsigned long line, const char *format, ...)
|
||||
{
|
||||
char s[512];
|
||||
FORMATTED_STRING(s, format);
|
||||
|
||||
print_int_error(file, line, s);
|
||||
}
|
||||
|
31
src/error.h
31
src/error.h
@ -6,37 +6,19 @@
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
#define INTERRMSG "internal error: "
|
||||
|
||||
/*
|
||||
* Add error source to error message
|
||||
*/
|
||||
#define ERRSRC(msg) (__FILE__ ":" STRINGIZE(__LINE__) ": " msg)
|
||||
|
||||
/*
|
||||
* Print internal error
|
||||
*/
|
||||
#define PRINTINTERR(format, ...) \
|
||||
print_error##__VA_OPT__(f)(ERRSRC(format) __VA_OPT__(, ) __VA_ARGS__)
|
||||
print_int_error##__VA_OPT__(f)(__FILE__, __LINE__, format __VA_OPT__(, ) __VA_ARGS__)
|
||||
|
||||
#define FUNCFAILED(f, ...) \
|
||||
PRINTINTERR(INTERRMSG f "() failed" __VA_OPT__(": %s", __VA_ARGS__))
|
||||
PRINTINTERR(f "() failed" __VA_OPT__(": %s", __VA_ARGS__))
|
||||
|
||||
#ifndef NO_TRACEBACK
|
||||
#define ERRCHK_PRINT_(...) \
|
||||
do { \
|
||||
int __a = 0; \
|
||||
__VA_OPT__(PRINTINTERR(__VA_ARGS__); __a = err_internal_error = 1;) \
|
||||
if (!__a && err_internal_error) \
|
||||
PRINTINTERR(); \
|
||||
} while (0)
|
||||
#endif
|
||||
#ifdef NO_TRACEBACK
|
||||
#define ERRCHK_PRINT_(...) \
|
||||
do { \
|
||||
__VA_OPT__(PRINTINTERR(__VA_ARGS__);) \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If cond is true, return ERR. Also call print_error or
|
||||
@ -59,7 +41,7 @@
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define ERRCHK_MSG_(x) INTERRMSG "'" x "'"
|
||||
#define ERRCHK_MSG_(x) "'" x "'"
|
||||
|
||||
#define ERRCHK_RET_MSG(cond, ...) \
|
||||
ERRCHK_RET(cond, ERRCHK_MSG_(#cond) __VA_OPT__(": %s", ) __VA_ARGS__)
|
||||
@ -69,8 +51,7 @@
|
||||
ERRCHK_MSG_(#cond) __VA_OPT__(": %s", ) __VA_ARGS__)
|
||||
|
||||
#define ERRCHK_RET_ERN(cond) ERRCHK_RET_MSG(cond, strerror(errno))
|
||||
#define ERRCHK_GOTO_ERN(cond, ret, label) \
|
||||
ERRCHK_GOTO_MSG(cond, ret, label, strerror(errno))
|
||||
#define ERRCHK_GOTO_ERN(cond, ret, label) ERRCHK_GOTO_MSG(cond, ret, label, strerror(errno))
|
||||
|
||||
/*
|
||||
* Shortcut for ERRCHK_*_RET(expr != OK)
|
||||
@ -78,8 +59,6 @@
|
||||
#define ERRCHK_RET_OK(e) ERRCHK_RET((e) != OK)
|
||||
#define ERRCHK_GOTO_OK(e, r, l) ERRCHK_GOTO((e) != OK, r, l)
|
||||
|
||||
extern int err_internal_error;
|
||||
|
||||
enum {
|
||||
OK,
|
||||
ERR,
|
||||
@ -87,5 +66,7 @@ enum {
|
||||
|
||||
void print_error(const char *error_msg);
|
||||
void print_errorf(const char *format, ...);
|
||||
void print_int_error(const char *file, unsigned long line, const char *msg);
|
||||
void print_int_errorf(const char *file, unsigned long line, const char *format, ...);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user