48#if defined HAVE_DECL___FUNC__ && !HAVE_DECL___FUNC__
155#define irplib_error_assure(CONDITION, ERROR_CODE, MSG, ACTION) \
157 if (cpl_error_get_code() != CPL_ERROR_NONE){ \
158 irplib_error_push(cpl_error_get_code(), \
159 ("An error occurred that was not caught: %s", \
160 cpl_error_get_where()) ); \
163 else if (!(CONDITION)) \
165 irplib_error_push(ERROR_CODE, MSG); \
181#define irplib_error_push(ec, msg) \
183 xsh_irplib_error_set_msg msg; \
184 xsh_irplib_error_push_macro(__func__, ec, __FILE__, __LINE__); \
223#define irplib_error_dump(severity, trace_severity) \
224 xsh_irplib_error_dump_macro(__func__, __FILE__, __LINE__, \
225 severity, trace_severity)
244 cpl_msg_severity severity,
245 cpl_msg_severity trace_severity);
249 __attribute__((format (printf, 1, 2)))
cpl_error_code xsh_irplib_error_push_macro(const char *func, cpl_error_code ec, const char *file, unsigned int line)
Set or propagate an error.
void xsh_irplib_error_reset(void)
Reset the error state.
void xsh_irplib_error_dump_macro(const char *func, const char *file, unsigned int line, cpl_msg_severity severity, cpl_msg_severity trace_severity)
Print the error queue.
void xsh_irplib_error_set_msg(const char *format,...)
Temporarily store an error message.