~ 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