]> gitweb.factorcode.org Git - factor.git/commitdiff
fix bootstrap errors, add missing files
authorerg <erg@ubuntubox.(none)>
Thu, 7 May 2009 21:53:32 +0000 (16:53 -0500)
committererg <erg@ubuntubox.(none)>
Thu, 7 May 2009 21:53:32 +0000 (16:53 -0500)
basis/io/directories/unix/linux/linux.factor [new file with mode: 0644]
basis/io/directories/unix/linux/tags.txt [new file with mode: 0644]
basis/io/directories/unix/unix.factor
basis/unix/linux/linux.factor

diff --git a/basis/io/directories/unix/linux/linux.factor b/basis/io/directories/unix/linux/linux.factor
new file mode 100644 (file)
index 0000000..ba5b27d
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2009 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.c-types io.directories.unix kernel system unix ;
+IN: io.directories.unix.linux
+
+M: unix find-next-file ( DIR* -- byte-array )
+    "dirent" <c-object>
+    f <void*>
+    [ readdir64_r 0 = [ (io-error) ] unless ] 2keep
+    *void* [ drop f ] unless ;
diff --git a/basis/io/directories/unix/linux/tags.txt b/basis/io/directories/unix/linux/tags.txt
new file mode 100644 (file)
index 0000000..6bf6830
--- /dev/null
@@ -0,0 +1 @@
+unportable
index 0db91f1153b13cf9b6281b840d3c5152e969f149..5e2fda5848e3e487a05ace3797c09f6f6207ab5d 100644 (file)
@@ -4,7 +4,7 @@ USING: accessors alien.c-types alien.strings combinators
 continuations destructors fry io io.backend io.backend.unix
 io.directories io.encodings.binary io.encodings.utf8 io.files
 io.pathnames io.files.types kernel math.bitwise sequences system
-unix unix.stat ;
+unix unix.stat vocabs.loader ;
 IN: io.directories.unix
 
 : touch-mode ( -- n )
@@ -72,3 +72,5 @@ M: unix (directory-entries) ( path -- seq )
         [ >directory-entry ]
         produce nip
     ] with-unix-directory ;
+
+os linux? [ "io.directories.unix.linux" require ] when
index 5a05e5c2072c2cc08422dd0f84e9666c0c1e35c0..43a66f2dbece6a3ca022ba148cb14e7acc2d9972 100644 (file)
@@ -94,7 +94,7 @@ C-STRUCT: passwd
     { "char*"  "pw_shell" } ;
 
 ! dirent64
-C-STRUCT: dirent64
+C-STRUCT: dirent
     { "ulonglong" "d_ino" }
     { "longlong" "d_off" }
     { "ushort" "d_reclen" }
@@ -103,7 +103,7 @@ C-STRUCT: dirent64
 
 FUNCTION: int open64 ( char* path, int flags, int prot ) ;
 FUNCTION: dirent64* readdir64 ( DIR* dirp ) ;
-FUNCTION: int readdir64_r ( void* dirp, dirent64* entry, dirent64** result ) ;
+FUNCTION: int readdir64_r ( void* dirp, dirent* entry, dirent** result ) ;
 
 M: linux open-file [ open64 ] unix-system-call ;