/usr/include/libical/icalerror.h is in libical2-dev 2.0.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | /*======================================================================
FILE: icalerror.h
CREATOR: eric 09 May 1999
(C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
http://www.softwarestudio.org
This program is free software; you can redistribute it and/or modify
it under the terms of either:
The LGPL as published by the Free Software Foundation, version
2.1, available at: http://www.gnu.org/licenses/lgpl-2.1.html
Or:
The Mozilla Public License Version 1.0. You may obtain a copy of
the License at http://www.mozilla.org/MPL/
The original code is icalerror.h
======================================================================*/
#ifndef ICALERROR_H
#define ICALERROR_H
#include "libical_ical_export.h"
#include <assert.h>
#include <stdio.h>
#define ICAL_SETERROR_ISFUNC
/** This routine is called before any error is triggered. It is called by
icalerror_set_errno, so it does not appear in all of the macros below */
LIBICAL_ICAL_EXPORT void icalerror_stop_here(void);
LIBICAL_ICAL_EXPORT void icalerror_crash_here(void);
typedef enum icalerrorenum
{
ICAL_NO_ERROR = 0,
ICAL_BADARG_ERROR,
ICAL_NEWFAILED_ERROR,
ICAL_ALLOCATION_ERROR,
ICAL_MALFORMEDDATA_ERROR,
ICAL_PARSE_ERROR,
ICAL_INTERNAL_ERROR, /* Like assert --internal consist. prob */
ICAL_FILE_ERROR,
ICAL_USAGE_ERROR,
ICAL_UNIMPLEMENTED_ERROR,
ICAL_UNKNOWN_ERROR /* Used for problems in input to icalerror_strerror() */
} icalerrorenum;
LIBICAL_ICAL_EXPORT icalerrorenum *icalerrno_return(void);
#define icalerrno (*(icalerrno_return()))
/** If true, libicu aborts after a call to icalerror_set_error
*
* @warning NOT THREAD SAFE -- recommended that you do not change
* this in a multithreaded program.
*/
LIBICAL_ICAL_EXPORT void icalerror_set_errors_are_fatal(int fatal);
LIBICAL_ICAL_EXPORT int icalerror_get_errors_are_fatal(void);
/* Warning messages */
#ifdef __GNUC__ca
#define icalerror_warn(message) \
{fprintf(stderr, "%s(), %s:%d: %s\n", __FUNCTION__, __FILE__, __LINE__, message);}
#else /* __GNU_C__ */
#define icalerror_warn(message) \
{fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, message);}
#endif /* __GNU_C__ */
LIBICAL_ICAL_EXPORT void icalerror_clear_errno(void);
LIBICAL_ICAL_EXPORT void _icalerror_set_errno(icalerrorenum);
/* Make an individual error fatal or non-fatal. */
typedef enum icalerrorstate
{
ICAL_ERROR_FATAL, /* Not fatal */
ICAL_ERROR_NONFATAL, /* Fatal */
ICAL_ERROR_DEFAULT, /* Use the value of icalerror_errors_are_fatal */
ICAL_ERROR_UNKNOWN /* Asked state for an unknown error type */
} icalerrorstate;
LIBICAL_ICAL_EXPORT const char *icalerror_strerror(icalerrorenum e);
LIBICAL_ICAL_EXPORT const char *icalerror_perror(void);
LIBICAL_ICAL_EXPORT void ical_bt(void);
LIBICAL_ICAL_EXPORT void icalerror_set_error_state(icalerrorenum error, icalerrorstate);
LIBICAL_ICAL_EXPORT icalerrorstate icalerror_get_error_state(icalerrorenum error);
LIBICAL_ICAL_EXPORT icalerrorenum icalerror_error_from_string(const char *str);
#if !defined(ICAL_SETERROR_ISFUNC)
#define icalerror_set_errno(x) \
icalerrno = x; \
if(icalerror_get_error_state(x) == ICAL_ERROR_FATAL || \
(icalerror_get_error_state(x) == ICAL_ERROR_DEFAULT && \
icalerror_get_errors_are_fatal() == 1)){ \
icalerror_warn(icalerror_strerror(x)); \
ical_bt(); \
assert(0); \
} }
#else
LIBICAL_ICAL_EXPORT void icalerror_set_errno(icalerrorenum x);
#endif
#if !defined(ICAL_ERRORS_ARE_FATAL)
#define ICAL_ERRORS_ARE_FATAL 0
#endif
#if ICAL_ERRORS_ARE_FATAL == 1
#undef NDEBUG
#endif
#define icalerror_check_value_type(value,type);
#define icalerror_check_property_type(value,type);
#define icalerror_check_parameter_type(value,type);
#define icalerror_check_component_type(value,type);
/* Assert with a message */
#if ICAL_ERRORS_ARE_FATAL == 1
#ifdef __GNUC__
#define icalerror_assert(test,message) \
if (!(test)) { \
fprintf(stderr, "%s(), %s:%d: %s\n", __FUNCTION__, __FILE__, __LINE__, message); \
icalerror_stop_here(); \
abort();}
#else /*__GNUC__*/
#define icalerror_assert(test,message) \
if (!(test)) { \
fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, message); \
icalerror_stop_here(); \
abort();}
#endif /*__GNUC__*/
#else /* ICAL_ERRORS_ARE_FATAL */
#define icalerror_assert(test,message)
#endif /* ICAL_ERRORS_ARE_FATAL */
/* Check & abort if check fails */
#define icalerror_check_arg(test,arg) \
if (!(test)) { \
icalerror_set_errno(ICAL_BADARG_ERROR); \
}
/* Check & return void if check fails*/
#define icalerror_check_arg_rv(test,arg) \
if (!(test)) { \
icalerror_set_errno(ICAL_BADARG_ERROR); \
return; \
}
/* Check & return 0 if check fails*/
#define icalerror_check_arg_rz(test,arg) \
if (!(test)) { \
icalerror_set_errno(ICAL_BADARG_ERROR); \
return 0; \
}
/* Check & return an error if check fails*/
#define icalerror_check_arg_re(test,arg,error) \
if (!(test)) { \
icalerror_stop_here(); \
assert(0); \
return error; \
}
/* Check & return something*/
#define icalerror_check_arg_rx(test,arg,x) \
if (!(test)) { \
icalerror_set_errno(ICAL_BADARG_ERROR); \
return x; \
}
/* String interfaces to set an error to NONFATAL and restore it to its original value */
LIBICAL_ICAL_EXPORT icalerrorstate icalerror_supress(const char *error);
LIBICAL_ICAL_EXPORT void icalerror_restore(const char *error, icalerrorstate es);
#endif /* !ICALERROR_H */
|