1 /* Declaration for error-reporting function 2 Copyright (C) 1995-1997, 2003, 2006, 2008-2020 Free Software Foundation, 3 Inc. 4 This file is part of the GNU C Library. 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _ERROR_H 20 #define _ERROR_H 1 21 22 /* On mingw, the flavor of printf depends on whether the extensions module 23 * is in use; the check for <stdio.h> determines the witness macro. */ 24 #ifndef _GL_ATTRIBUTE_SPEC_PRINTF 25 # if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 26 # define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__ 27 # else 28 # define _GL_ATTRIBUTE_SPEC_PRINTF __printf__ 29 # endif 30 #endif 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /* Print a message with 'fprintf (stderr, FORMAT, ...)'; 37 if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). 38 If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ 39 40 extern void error (int __status, int __errnum, const char *__format, ...) 41 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4)); 42 43 extern void error_at_line (int __status, int __errnum, const char *__fname, 44 unsigned int __lineno, const char *__format, ...) 45 _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6)); 46 47 /* If NULL, error will flush stdout, then print on stderr the program 48 name, a colon and a space. Otherwise, error will call this 49 function without parameters instead. */ 50 extern void (*error_print_progname) (void); 51 52 /* This variable is incremented each time 'error' is called. */ 53 extern unsigned int error_message_count; 54 55 /* Sometimes we want to have at most one error per line. This 56 variable controls whether this mode is selected or not. */ 57 extern int error_one_per_line; 58 59 #ifdef __cplusplus 60 } 61 #endif 62 63 #endif /* error.h */ 64