You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libr/src/libr-internal.h

35 lines
1.2 KiB

10 years ago
#ifndef __LIBR_INTERNAL_H
#define __LIBR_INTERNAL_H
#define false 0
#define true 1
#define ERROR -1
#define EXPORT_FN __attribute__((visibility ("protected")))
#define INTERNAL_FN __attribute__ ((visibility ("internal")))
#define LIBR_TEMPFILE "/tmp/libr-temp.XXXXXX"
#define LIBR_TEMPFILE_LEN 22
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct {
char *message;
libr_status status;
const char *function;
} libr_intstatus;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
struct _libr_file;
void libr_set_error(libr_intstatus error);
libr_intstatus make_status(const char *function, libr_status code, char *message, ...);
/* Only called directly by cleanup routine, all other calls should be through libr_close */
void libr_close_internal(struct _libr_file *file_handle);
#define SET_ERROR(code,...) make_status(__FUNCTION__, code, __VA_ARGS__)
#define RETURN(code,...) return SET_ERROR(code, __VA_ARGS__)
#define RETURN_OK return SET_ERROR(LIBR_OK, NULL)
#define PUBLIC_RETURN(code,message) {SET_ERROR(code, message); return (code == LIBR_OK);}
#endif /* __LIBR_INTERNAL_H */