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
|
/*************************************************************************
* Copyright (c) 2011 AT&T Intellectual Property
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Details at https://graphviz.org
*************************************************************************/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/*
* standalone mini error interface
*/
#include <stdarg.h>
#include <errno.h>
typedef struct Error_info_s {
int errors;
int indent;
int line;
int warnings;
int trace;
char *file;
char *id;
} Error_info_t;
#define ERROR_INFO 0 /* info message -- no err_id */
#define ERROR_WARNING 1 /* warning message */
#define ERROR_ERROR 2 /* error message -- no err_exit */
#define ERROR_FATAL 3 /* error message with err_exit */
#define ERROR_PANIC ERROR_LEVEL /* panic message with err_exit */
#define ERROR_LEVEL 0x00ff /* level portion of status */
#define ERROR_USAGE 0x0800 /* usage message */
/* support for extra API misuse warnings if available */
#ifdef __GNUC__
#define PRINTF_LIKE(index, first) __attribute__((format(printf, index, first)))
#else
#define PRINTF_LIKE(index, first) /* nothing */
#endif
extern Error_info_t error_info;
extern void setTraceLevel (int);
extern void setErrorLine (int);
extern void setErrorFileLine (char*, int);
extern void setErrorId (char*);
extern void setErrorErrors (int);
extern int getErrorErrors (void);
extern void error(int, const char *, ...) PRINTF_LIKE(2, 3);
extern void errorf(void *, void *, int, const char *, ...) PRINTF_LIKE(4, 5);
extern void errorv(const char *, int, const char *, va_list);
#undef PRINTF_LIKE
#ifdef __cplusplus
}
#endif
|