Viewing file: error_context.h (846 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef __ERROR_CONTEXT_T #define __ERROR_CONTEXT_T
#ifdef __cplusplus extern "C" { #endif
struct error_context { /* Process an error message */ void (*error) (struct error_context *, const char *, ...);
/* Quote a file name for including in an error message */ const char *(*quote) (struct error_context *, const char *);
/* Free a quoted name */ void (*quote_free) (struct error_context *, const char *); };
#ifdef ERROR_CONTEXT_MACROS # define error(ctx, args...) do { \ if ((ctx) && (ctx)->error) \ (ctx)->error((ctx), args); \ } while(0) # define quote(ctx, name) \ ( ((ctx) && (ctx)->quote) ? (ctx)->quote((ctx), (name)) : (name) ) # define quote_free(ctx, name) do { \ if ((ctx) && (ctx)->quote_free) \ (ctx)->quote_free((ctx), (name)); \ } while(0) #endif
#ifdef __cplusplus } #endif
#endif /* __ERROR_CONTEXT_T */
|