summaryrefslogtreecommitdiff
path: root/mint/errno.h
blob: 5c19d0efa7fbb865c0939dc5280efbd624930205 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* Wrapper around broken system errno.h.  */

#ifndef _PERL_WRAPPER_AROUND_ERRNO_H
# define _PERL_WRAPPER_AROUND_ERRNO_H 1

/* First include the system file.  */
#include_next <errno.h> 

/* Now add the missing stuff.
#ifndef EAGAIN
# define EAGAIN EWOULDBLOCK
#endif

/* This one is problematic.  If you open() a directory with the
   MiNTLib you can't detect from errno if it is really a directory
   or if the file simply doesn't exist.  You'll get ENOENT 
   ("file not found") in either case.
   
   Defining EISDIR as ENOENT is actually a bad idea but works fine
   in general.  In praxi, if code checks for errno == EISDIR it
   will attempt an opendir() call on the file in question and this
   call will also file if the file really can't be found.  But
   you may get compile-time errors if the errno checking is embedded
   in a switch statement ("duplicate case value in switch").
   
   Anyway, here the define works alright.  */
#ifndef EISDIR
# define EISDIR ENOENT
#endif

#endif