diff options
Diffstat (limited to 'gl/error.h')
-rw-r--r-- | gl/error.h | 45 |
1 files changed, 23 insertions, 22 deletions
@@ -1,35 +1,26 @@ | |||
1 | /* Declaration for error-reporting function | 1 | /* Declaration for error-reporting function |
2 | Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation, | 2 | Copyright (C) 1995-1997, 2003, 2006, 2008-2023 Free Software Foundation, |
3 | Inc. | 3 | Inc. |
4 | This file is part of the GNU C Library. | 4 | This file is part of the GNU C Library. |
5 | 5 | ||
6 | This program is free software: you can redistribute it and/or modify | 6 | This file is free software: you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU Lesser General Public License as |
8 | the Free Software Foundation; either version 3 of the License, or | 8 | published by the Free Software Foundation; either version 2.1 of the |
9 | (at your option) any later version. | 9 | License, or (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This file is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU Lesser General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU Lesser General Public License |
17 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 17 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
18 | 18 | ||
19 | #ifndef _ERROR_H | 19 | #ifndef _ERROR_H |
20 | #define _ERROR_H 1 | 20 | #define _ERROR_H 1 |
21 | 21 | ||
22 | /* The __attribute__ feature is available in gcc versions 2.5 and later. | 22 | /* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ |
23 | The __-protected variants of the attributes 'format' and 'printf' are | 23 | #include <stdio.h> |
24 | accepted by gcc versions 2.6.4 (effectively 2.7) and later. | ||
25 | We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because | ||
26 | gnulib and libintl do '#define printf __printf__' when they override | ||
27 | the 'printf' function. */ | ||
28 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) | ||
29 | # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) | ||
30 | #else | ||
31 | # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ | ||
32 | #endif | ||
33 | 24 | ||
34 | #ifdef __cplusplus | 25 | #ifdef __cplusplus |
35 | extern "C" { | 26 | extern "C" { |
@@ -40,11 +31,21 @@ extern "C" { | |||
40 | If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ | 31 | If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ |
41 | 32 | ||
42 | extern void error (int __status, int __errnum, const char *__format, ...) | 33 | extern void error (int __status, int __errnum, const char *__format, ...) |
43 | _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); | 34 | #if GNULIB_VFPRINTF_POSIX |
35 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)) | ||
36 | #else | ||
37 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4)) | ||
38 | #endif | ||
39 | ; | ||
44 | 40 | ||
45 | extern void error_at_line (int __status, int __errnum, const char *__fname, | 41 | extern void error_at_line (int __status, int __errnum, const char *__fname, |
46 | unsigned int __lineno, const char *__format, ...) | 42 | unsigned int __lineno, const char *__format, ...) |
47 | _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); | 43 | #if GNULIB_VFPRINTF_POSIX |
44 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6)) | ||
45 | #else | ||
46 | _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6)) | ||
47 | #endif | ||
48 | ; | ||
48 | 49 | ||
49 | /* If NULL, error will flush stdout, then print on stderr the program | 50 | /* If NULL, error will flush stdout, then print on stderr the program |
50 | name, a colon and a space. Otherwise, error will call this | 51 | name, a colon and a space. Otherwise, error will call this |