From: Cyrus Harmon Date: Sat, 12 Jun 2010 20:44:42 +0000 (+0000) Subject: 1.0.39.11: fix readdir for :inode64 builds X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=0c4fe8f1022452ef7de0336a50f6e45e0ce7c8c3;p=sbcl.git 1.0.39.11: fix readdir for :inode64 builds * readdir now calls readdir$INODE64 when buildling with :inode64 (launchpad bug #592897) --- diff --git a/NEWS b/NEWS index 02c97ab..3c3c409 100644 --- 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). diff --git a/contrib/sb-posix/interface.lisp b/contrib/sb-posix/interface.lisp index eff9ce7..0995a1d 100644 --- a/contrib/sb-posix/interface.lisp +++ b/contrib/sb-posix/interface.lisp @@ -126,6 +126,15 @@ (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 diff --git a/version.lisp-expr b/version.lisp-expr index 27d6cbf..d226d74 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"