54#define assure(CONDITION, ERROR_CODE, ...) \
55 irplib_error_assure(CONDITION, ERROR_CODE, (__VA_ARGS__), goto cleanup)
58#define assure_nomsg(BOOL, CODE) \
59 assure(BOOL, CODE, " ")
62#define check_msg(COMMAND, ...) \
63 irplib_error_assure((cpl_msg_indent_more(), \
65 cpl_msg_indent_less(), \
66 cpl_error_get_code() == CPL_ERROR_NONE), \
67 cpl_error_get_code(), \
68 (__VA_ARGS__), goto cleanup)
71#define check(COMMAND) check_msg(COMMAND, " ")
73#define cknull_msg(NULLEXP, ...) \
74 cpl_error_ensure((NULLEXP) != NULL, \
75 CPL_ERROR_UNSPECIFIED, goto cleanup,__VA_ARGS__)
77#define cknull(NULLEXP) cknull_msg(NULLEXP," ")
79#define assure_mem(PTR) \
80 assure((PTR) != NULL, CPL_ERROR_ILLEGAL_OUTPUT, "Memory allocation failure!")
82#define passure(CONDITION, ...) assure(CONDITION, CPL_ERROR_UNSPECIFIED, \
83 "Internal program error. Please report to " \
84 PACKAGE_BUGREPORT " " __VA_ARGS__)
87#define xsh_error_reset() xsh_irplib_error_reset()
92#define xsh_error_dump(level) irplib_error_dump(level, level)
94#define xsh_error_msg(...) \
95 if(cpl_error_get_code()!= CPL_ERROR_NULL_INPUT){\
96 irplib_error_push(cpl_error_get_code(), (__VA_ARGS__));\
99#define XSH_ASSURE_NOT_NULL(pointer) \
100 assure(pointer != NULL, CPL_ERROR_NULL_INPUT,\
101 "You have null pointer in input: " #pointer)
103#define XSH_ASSURE_NOT_NULL_MSG(pointer,msg) \
104 assure(pointer != NULL, CPL_ERROR_NULL_INPUT,\
105 "You have null pointer in input: " #pointer "\n" msg)
107#define XSH_ASSURE_NOT_ILLEGAL(cond) \
108 assure(cond, CPL_ERROR_ILLEGAL_INPUT,\
109 "condition failed: " #cond )
111#define XSH_ASSURE_NOT_ILLEGAL_MSG(cond, msg) \
112 assure(cond, CPL_ERROR_ILLEGAL_INPUT,\
113 "condition failed: " #cond "\n" msg)
115#define XSH_ASSURE_NOT_MISMATCH(cond) \
116 assure(cond, CPL_ERROR_TYPE_MISMATCH,\
117 "condition failed: "#cond )
119#define XSH_CMP_INT(A, OPERATOR, B, SUFFIX ,...)\
120 assure(A OPERATOR B, CPL_ERROR_ILLEGAL_INPUT,\
121 "assertion failed: %s %s %s : %d %s %d\n"\
122 #SUFFIX "", #A, #OPERATOR, #B , A, #OPERATOR, B __VA_ARGS__)
124#define XSH_CHECK_COND(A, OPERATOR, B, SUFFIX, ...)\
125 assure(A OPERATOR B, CPL_ERROR_ILLEGAL_INPUT,\
126 "assertion failed: %s %s %s\n" #SUFFIX "", #A, #OPERATOR, #B, __VA_ARGS__)
128#define XSH_CHECK_FRAMESET_SIZE(FRAMESET,OPERATOR,SIZE)\
129 XSH_CHECK_COND(cpl_frameset_get_size(FRAMESET),OPERATOR,SIZE,\
130 "%s","Frameset size invalid:")
132#define XSH_REGDEBUG( ...)\
133 xsh_msg_debug("<< REGDEBUG >> :" __VA_ARGS__)