#ifndef AMALGAM_MISC_H #define AMALGAM_MISC_H #define return_if_error(result) \ do { \ int return_if_result; \ return_if_result = (result); \ if((return_if_result) != 0) \ return return_if_result; \ } while(0) #define cleanup_if_error(result) do { if((result) != 0) goto cleanup; } while(0) #if defined(__GNUC__) && __GNUC__ >= 4 #define CHECK_RESULT __attribute__ ((warn_unused_result)) #elif defined(_MSC_VER) && _MSC_VER >= 1700 #define CHECK_RESULT _Check_return_ #else #define CHECK_RESULT #endif #define ignore_result_int(expr) (void)((expr)+1) typedef enum { bool_false, bool_true } bool; #ifndef NULL #define NULL ((void*)0) #endif #endif