chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] [PATCH 4/8] Deduplicate the Unix and Windows chicken.e


From: Evan Hanson
Subject: [Chicken-hackers] [PATCH 4/8] Deduplicate the Unix and Windows chicken.errno module definitions
Date: Thu, 2 Mar 2017 21:50:40 +1300

Stubs EWOULDBLOCK on Windows so that the module only needs to be
declared once.
---
 posix.scm     | 43 +++++++++++++++++++++++++++++++++++++++++++
 posixunix.scm | 44 --------------------------------------------
 posixwin.scm  | 47 ++++-------------------------------------------
 3 files changed, 47 insertions(+), 87 deletions(-)

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))
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]