~ chicken-core (chicken-5) 89d71e4226df5a9f71c9eb7fa8f79e49172743a1


commit 89d71e4226df5a9f71c9eb7fa8f79e49172743a1
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Fri Feb 24 13:45:11 2017 +1300
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Thu Mar 2 16:37:28 2017 +1300

    Deduplicate the Unix and Windows chicken.errno module definitions
    
    Stubs EWOULDBLOCK on Windows so that the module only needs to be
    declared once.

diff --git a/posix.scm b/posix.scm
index c844366a..6e4ffad4 100644
--- a/posix.scm
+++ b/posix.scm
@@ -44,3 +44,46 @@
    (include "posixunix.scm"))
   (platform-windows
    (include "posixwin.scm")))
+
+(module chicken.errno *
+(import scheme chicken)
+(export errno)
+(define errno/2big _e2big)
+(define errno/acces _eacces)
+(define errno/again _eagain)
+(define errno/badf _ebadf)
+(define errno/busy _ebusy)
+(define errno/child _echild)
+(define errno/deadlk _edeadlk)
+(define errno/dom _edom)
+(define errno/exist _eexist)
+(define errno/fault _efault)
+(define errno/fbig _efbig)
+(define errno/ilseq _eilseq)
+(define errno/intr _eintr)
+(define errno/inval _einval)
+(define errno/io _eio)
+(define errno/isdir _eisdir)
+(define errno/mfile _emfile)
+(define errno/mlink _emlink)
+(define errno/nametoolong _enametoolong)
+(define errno/nfile _enfile)
+(define errno/nodev _enodev)
+(define errno/noent _enoent)
+(define errno/noexec _enoexec)
+(define errno/nolck _enolck)
+(define errno/nomem _enomem)
+(define errno/nospc _enospc)
+(define errno/nosys _enosys)
+(define errno/notdir _enotdir)
+(define errno/notempty _enotempty)
+(define errno/notty _enotty)
+(define errno/nxio _enxio)
+(define errno/perm _eperm)
+(define errno/pipe _epipe)
+(define errno/range _erange)
+(define errno/rofs _erofs)
+(define errno/spipe _espipe)
+(define errno/srch _esrch)
+(define errno/wouldblock _ewouldblock)
+(define errno/xdev _exdev))
diff --git a/posixunix.scm b/posixunix.scm
index 1e177374..7e9a21da 100644
--- a/posixunix.scm
+++ b/posixunix.scm
@@ -1600,47 +1600,3 @@ EOF
         (posix-error #:file-error 'set-root-directory! "unable to change root directory" dir) ) ) ) )
 
 ) ; chicken.posix
-
-(module chicken.errno *
-(import scheme chicken)
-(export errno)
-;; XXX TODO why aren't these set?
-(define errno/2big 0)
-(define errno/deadlk 0)
-(define errno/dom 0)
-(define errno/fbig 0)
-(define errno/ilseq 0)
-(define errno/mlink 0)
-(define errno/nametoolong 0)
-(define errno/nfile 0)
-(define errno/nodev 0)
-(define errno/nolck 0)
-(define errno/nosys 0)
-(define errno/notempty 0)
-(define errno/notty 0)
-(define errno/nxio 0)
-(define errno/range 0)
-(define errno/xdev 0)
-(define errno/acces _eacces)
-(define errno/again _eagain)
-(define errno/badf _ebadf)
-(define errno/busy _ebusy)
-(define errno/child _echild)
-(define errno/exist _eexist)
-(define errno/fault _efault)
-(define errno/intr _eintr)
-(define errno/inval _einval)
-(define errno/io _eio)
-(define errno/isdir _eisdir)
-(define errno/mfile _emfile)
-(define errno/noent _enoent)
-(define errno/noexec _enoexec)
-(define errno/nomem _enomem)
-(define errno/nospc _enospc)
-(define errno/notdir _enotdir)
-(define errno/perm _eperm)
-(define errno/pipe _epipe)
-(define errno/rofs _erofs)
-(define errno/spipe _espipe)
-(define errno/srch _esrch)
-(define errno/wouldblock _ewouldblock))
diff --git a/posixwin.scm b/posixwin.scm
index 11103166..62790932 100644
--- a/posixwin.scm
+++ b/posixwin.scm
@@ -78,6 +78,10 @@
 
 #define PIPE_BUF	512
 
+#ifndef EWOULDBLOCK
+# define EWOULDBLOCK 0
+#endif
+
 static C_TLS int C_pipefds[ 2 ];
 static C_TLS time_t C_secs;
 
@@ -1364,46 +1368,3 @@ EOF
 (define perm/isvtx 0)
 
 ) ; chicken.posix
-
-(module chicken.errno *
-(import scheme chicken)
-(export errno)
-(define errno/wouldblock 0) ; undefined on mingw
-(define errno/2big _e2big)
-(define errno/acces _eacces)
-(define errno/again _eagain)
-(define errno/badf _ebadf)
-(define errno/busy _ebusy)
-(define errno/child _echild)
-(define errno/deadlk _edeadlk)
-(define errno/dom _edom)
-(define errno/exist _eexist)
-(define errno/fault _efault)
-(define errno/fbig _efbig)
-(define errno/ilseq _eilseq)
-(define errno/intr _eintr)
-(define errno/inval _einval)
-(define errno/io _eio)
-(define errno/isdir _eisdir)
-(define errno/mfile _emfile)
-(define errno/mlink _emlink)
-(define errno/nametoolong _enametoolong)
-(define errno/nfile _enfile)
-(define errno/nodev _enodev)
-(define errno/noent _enoent)
-(define errno/noexec _enoexec)
-(define errno/nolck _enolck)
-(define errno/nomem _enomem)
-(define errno/nospc _enospc)
-(define errno/nosys _enosys)
-(define errno/notdir _enotdir)
-(define errno/notempty _enotempty)
-(define errno/notty _enotty)
-(define errno/nxio _enxio)
-(define errno/perm _eperm)
-(define errno/pipe _epipe)
-(define errno/range _erange)
-(define errno/rofs _erofs)
-(define errno/spipe _espipe)
-(define errno/srch _esrch)
-(define errno/xdev _exdev))
Trap