xref: /freebsd/contrib/diff/lib/error.h (revision d8000daa92a4cdf940348f483861d52fa3cbf91d)
1  /* Declaration for error-reporting function
2     Copyright (C) 1995, 1996, 1997, 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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)
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 */
67