1 /* strerror-override.h --- POSIX compatible system error routine
2 
3    Copyright (C) 2010-2018 Free Software Foundation, Inc.
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 3 of the License, or
8    (at your option) 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
16    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
17 
18 #ifndef _GL_STRERROR_OVERRIDE_H
19 # define _GL_STRERROR_OVERRIDE_H
20 
21 # include <errno.h>
22 # include <stddef.h>
23 
24 /* Reasonable buffer size that should never trigger ERANGE; if this
25    proves too small, we intentionally abort(), to remind us to fix
26    this value.  */
27 # define STACKBUF_LEN 256
28 
29 /* If ERRNUM maps to an errno value defined by gnulib, return a string
30    describing the error.  Otherwise return NULL.  */
31 # if REPLACE_STRERROR_0 \
32      || GNULIB_defined_ESOCK \
33      || GNULIB_defined_ESTREAMS \
34      || GNULIB_defined_EWINSOCK \
35      || GNULIB_defined_ENOMSG \
36      || GNULIB_defined_EIDRM \
37      || GNULIB_defined_ENOLINK \
38      || GNULIB_defined_EPROTO \
39      || GNULIB_defined_EMULTIHOP \
40      || GNULIB_defined_EBADMSG \
41      || GNULIB_defined_EOVERFLOW \
42      || GNULIB_defined_ENOTSUP \
43      || GNULIB_defined_ENETRESET \
44      || GNULIB_defined_ECONNABORTED \
45      || GNULIB_defined_ESTALE \
46      || GNULIB_defined_EDQUOT \
47      || GNULIB_defined_ECANCELED \
48      || GNULIB_defined_EOWNERDEAD \
49      || GNULIB_defined_ENOTRECOVERABLE \
50      || GNULIB_defined_EILSEQ
51 extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
52 # else
53 #  define strerror_override(ignored) NULL
54 # endif
55 
56 #endif /* _GL_STRERROR_OVERRIDE_H */
57