
1: /* Declaration for error-reporting function 2: Copyright (C) 1995, 1996, 1997, 2003, 2006 Free Software Foundation, Inc. 3: This file is part of the GNU C Library. 4: 5: This program is free software; you can redistribute it and/or modify 6: it under the terms of the GNU General Public License as published by 7: the Free Software Foundation; either version 2, or (at your option) 8: any later version. 9: 10: This program is distributed in the hope that it will be useful, 11: but WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13: GNU General Public License for more details. 14: 15: You should have received a copy of the GNU General Public License along 16: with this program; if not, write to the Free Software Foundation, 17: Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 18: 19: #ifndef _ERROR_H 20: #define _ERROR_H 1 21: 22: #ifndef __attribute__ 23: /* This feature is available in gcc versions 2.5 and later. */ 24: # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ 25: # define __attribute__(Spec) /* empty */ 26: # endif 27: /* The __-protected variants of `format' and `printf' attributes 28: are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ 29: # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) 30: # define __format__ format 31: # define __printf__ printf 32: # endif 33: #endif 34: 35: #ifdef __cplusplus 36: extern "C" { 37: #endif 38: 39: /* Print a message with `fprintf (stderr, FORMAT, ...)'; 40: if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). 41: If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ 42: 43: extern void error (int __status, int __errnum, const char *__format, ...) 44: __attribute__ ((__format__ (__printf__, 3, 4))); 45: 46: extern void error_at_line (int __status, int __errnum, const char *__fname, 47: unsigned int __lineno, const char *__format, ...) 48: __attribute__ ((__format__ (__printf__, 5, 6))); 49: 50: /* If NULL, error will flush stdout, then print on stderr the program 51: name, a colon and a space. Otherwise, error will call this 52: function without parameters instead. */ 53: extern void (*error_print_progname) (void); 54: 55: /* This variable is incremented each time `error' is called. */ 56: extern unsigned int error_message_count; 57: 58: /* Sometimes we want to have at most one error per line. This 59: variable controls whether this mode is selected or not. */ 60: extern int error_one_per_line; 61: 62: #ifdef __cplusplus 63: } 64: #endif 65: 66: #endif /* error.h */