1/* strerror-override.h --- POSIX compatible system error routine
2
3   Copyright (C) 2010-2012 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 <http://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
51extern const char *strerror_override (int errnum);
52# else
53#  define strerror_override(ignored) NULL
54# endif
55
56#endif /* _GL_STRERROR_OVERRIDE_H */
57