Blame lib/error.h

Packit 6e6f77
/* Declaration for error-reporting function
Packit 6e6f77
   Copyright (C) 1995-1997, 2003, 2006, 2008-2018 Free Software Foundation,
Packit 6e6f77
   Inc.
Packit 6e6f77
   This file is part of the GNU C Library.
Packit 6e6f77
Packit 6e6f77
   This program is free software: you can redistribute it and/or modify
Packit 6e6f77
   it under the terms of the GNU General Public License as published by
Packit 6e6f77
   the Free Software Foundation; either version 3 of the License, or
Packit 6e6f77
   (at your option) any later version.
Packit 6e6f77
Packit 6e6f77
   This program is distributed in the hope that it will be useful,
Packit 6e6f77
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6e6f77
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 6e6f77
   GNU General Public License for more details.
Packit 6e6f77
Packit 6e6f77
   You should have received a copy of the GNU General Public License
Packit 6e6f77
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit 6e6f77
Packit 6e6f77
#ifndef _ERROR_H
Packit 6e6f77
#define _ERROR_H 1
Packit 6e6f77
Packit 6e6f77
/* The __attribute__ feature is available in gcc versions 2.5 and later.
Packit 6e6f77
   The __-protected variants of the attributes 'format' and 'printf' are
Packit 6e6f77
   accepted by gcc versions 2.6.4 (effectively 2.7) and later.
Packit 6e6f77
   We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
Packit 6e6f77
   gnulib and libintl do '#define printf __printf__' when they override
Packit 6e6f77
   the 'printf' function.  */
Packit 6e6f77
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
Packit 6e6f77
# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
Packit 6e6f77
#else
Packit 6e6f77
# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
Packit 6e6f77
#endif
Packit 6e6f77
Packit 6e6f77
/* On mingw, the flavor of printf depends on whether the extensions module
Packit 6e6f77
 * is in use; the check for <stdio.h> determines the witness macro.  */
Packit 6e6f77
#ifndef _GL_ATTRIBUTE_SPEC_PRINTF
Packit 6e6f77
# if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
Packit 6e6f77
#  define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__
Packit 6e6f77
# else
Packit 6e6f77
#  define _GL_ATTRIBUTE_SPEC_PRINTF __printf__
Packit 6e6f77
# endif
Packit 6e6f77
#endif
Packit 6e6f77
Packit 6e6f77
#ifdef __cplusplus
Packit 6e6f77
extern "C" {
Packit 6e6f77
#endif
Packit 6e6f77
Packit 6e6f77
/* Print a message with 'fprintf (stderr, FORMAT, ...)';
Packit 6e6f77
   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
Packit 6e6f77
   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
Packit 6e6f77
Packit 6e6f77
extern void error (int __status, int __errnum, const char *__format, ...)
Packit 6e6f77
     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4));
Packit 6e6f77
Packit 6e6f77
extern void error_at_line (int __status, int __errnum, const char *__fname,
Packit 6e6f77
                           unsigned int __lineno, const char *__format, ...)
Packit 6e6f77
     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6));
Packit 6e6f77
Packit 6e6f77
/* If NULL, error will flush stdout, then print on stderr the program
Packit 6e6f77
   name, a colon and a space.  Otherwise, error will call this
Packit 6e6f77
   function without parameters instead.  */
Packit 6e6f77
extern void (*error_print_progname) (void);
Packit 6e6f77
Packit 6e6f77
/* This variable is incremented each time 'error' is called.  */
Packit 6e6f77
extern unsigned int error_message_count;
Packit 6e6f77
Packit 6e6f77
/* Sometimes we want to have at most one error per line.  This
Packit 6e6f77
   variable controls whether this mode is selected or not.  */
Packit 6e6f77
extern int error_one_per_line;
Packit 6e6f77
Packit 6e6f77
#ifdef __cplusplus
Packit 6e6f77
}
Packit 6e6f77
#endif
Packit 6e6f77
Packit 6e6f77
#endif /* error.h */