1.0.39.11: fix readdir for :inode64 builds
authorCyrus Harmon <ch-sbcl@bobobeach.com>
Sat, 12 Jun 2010 20:44:42 +0000 (20:44 +0000)
committerCyrus Harmon <ch-sbcl@bobobeach.com>
Sat, 12 Jun 2010 20:44:42 +0000 (20:44 +0000)
 * readdir now calls readdir$INODE64 when buildling with :inode64
   (launchpad bug #592897)

NEWS
contrib/sb-posix/interface.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 02c97ab..3c3c409 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
 changes relative to sbcl-1.0.39:
+  * bug fix: readdir now works on :inode64 darwin builds (lp#592897)
   * bug fix: Name conflicts between symbols passed as arguments to a
 single call to IMPORT no longer add multiple symbols with the same name
 to the package (detectable via DO-SYMBOLS).
index eff9ce7..0995a1d 100644 (file)
 (define-call* "unlink" int minusp (pathname filename))
 (define-call #-netbsd "opendir" #+netbsd "_opendir"
     (* t) null-alien (pathname filename))
+#+inode64
+(define-call ("readdir" :c-name "readdir$INODE64" :options :largefile)
+  (* dirent)
+  ;; readdir() has the worst error convention in the world.  It's just
+  ;; too painful to support.  (return is NULL _and_ errno "unchanged"
+  ;; is not an error, it's EOF).
+  not
+  (dir (* t)))
+#-inode64
 (define-call (#-netbsd "readdir" #+netbsd "_readdir" :options :largefile)
   (* dirent)
   ;; readdir() has the worst error convention in the world.  It's just
index 27d6cbf..d226d74 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.39.10"
+"1.0.39.11"