Blame gettext-runtime/gnulib-lib/error.h

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