1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

libast: consolidate errno ID fallbacks into error.h

In various places in libast and libcmd there are preprocessor
fallbacks like this, for systems that don't define all the commonly
used errno value IDs:

    #ifndef ENOSYS
    #define ENOSYS	EINVAL
    #endif

and many others. It is better to have these all in one place so
they are not duplicated and we don't risk inconsistencies when
adding new code.

src/lib/libast/include/error.h includes the OS's <errno.h>, so it
is the logical file to move all these fallbacks into.

Quite possibly there is no remotely current system that needs any
of these, but they won't do any harm either.

Most files already use <error.h> directly or indirectly. Four
needed new #include <error.h> directives to use the fallbacks if
needed. The libast Mamfile is updated to make those files depend on
that header.
This commit is contained in:
Martijn Dekker 2021-03-22 00:48:28 +00:00
parent 814b5c6890
commit 71bfe0283d
22 changed files with 47 additions and 112 deletions

View file

@ -39,7 +39,6 @@
#if !defined(errno) && defined(__DYNAMIC__)
#define errno __DYNAMIC__(errno)
#endif
#define ERROR_debug(n) (-(n))
#define ERROR_exit(n) ((n)+ERROR_ERROR)
#define ERROR_system(n) (((n)+ERROR_ERROR)|ERROR_SYSTEM)
@ -156,6 +155,45 @@ struct Error_info_s /* error state */
#ifndef errno
extern int errno; /* system call error status */
#endif
#ifndef E2BIG
#define E2BIG ENOMEM
#endif
#ifndef EAGAIN
#define EAGAIN 11
#endif
#ifndef EBADF
#define EBADF 9
#endif
#ifndef EBUSY
#define EBUSY 16
#endif
#ifndef EDEADLK
#define EDEADLK 45
#endif
#ifndef EINTR
#define EINTR 4
#endif
#ifndef EILSEQ
#define EILSEQ EIO
#endif
#ifndef EINVAL
#define EINVAL 22
#endif
#ifndef ENOMEM
#define ENOMEM 12
#endif
#ifndef ENOSYS
#define ENOSYS EINVAL
#endif
#ifndef EPERM
#define EPERM 1
#endif
#ifndef ERANGE
#define ERANGE E2BIG
#endif
#ifndef ESPIPE
#define ESPIPE 29
#endif
#if _BLD_ast && defined(__EXPORT__)
#define extern extern __EXPORT__