]> gitweb.factorcode.org Git - factor.git/commitdiff
fix mac stat
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 7 Oct 2008 12:43:49 +0000 (07:43 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 7 Oct 2008 12:43:49 +0000 (07:43 -0500)
basis/unix/stat/macosx/macosx.factor
basis/unix/stat/stat.factor
basis/unix/types/macosx/macosx.factor

index 65e02b7986447624a108fc43adf6c34a3b9d42fe..b2574b474d2cc06f14e97b35a785cd5e04e34f77 100644 (file)
@@ -8,7 +8,7 @@ C-STRUCT: stat
     { "dev_t"      "st_dev" }
     { "mode_t"     "st_mode" }
     { "nlink_t"    "st_nlink" }
-    { "ino_t"      "st_ino" }
+    { "ino64_t"    "st_ino" }
     { "uid_t"      "st_uid" }
     { "gid_t"      "st_gid" }
     { "dev_t"      "st_rdev" }
index 2bc60105b449853b99437f7e421f0490cddef2d2..062ad7e1bb440af6350286c629ed6c725ae84d54 100644 (file)
@@ -1,12 +1,8 @@
-
 USING: kernel system combinators alien.syntax alien.c-types
-       math io.unix.backend vocabs.loader unix ;
-
+math io.unix.backend vocabs.loader unix ;
 IN: unix.stat
 
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! File Types
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : S_IFMT   OCT: 170000 ; ! These bits determine file type.
 
@@ -18,54 +14,38 @@ IN: unix.stat
 : S_IFLNK  OCT: 120000 ; inline   ! Symbolic link.
 : S_IFSOCK OCT: 140000 ; inline   ! Socket.
 
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! File Access Permissions
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-! Read, write, execute/search by owner
-: S_IRWXU OCT: 0000700 ; inline    ! rwx mask owner
+: S_ISUID OCT: 0004000 ; inline
+: S_ISGID OCT: 0002000 ; inline
+: S_ISVTX OCT: 0001000 ; inline
 : S_IRUSR OCT: 0000400 ; inline    ! r owner
 : S_IWUSR OCT: 0000200 ; inline    ! w owner
 : S_IXUSR OCT: 0000100 ; inline    ! x owner
-! Read, write, execute/search by group
-: S_IRWXG OCT: 0000070 ; inline    ! rwx mask group
 : S_IRGRP OCT: 0000040 ; inline    ! r group
 : S_IWGRP OCT: 0000020 ; inline    ! w group
 : S_IXGRP OCT: 0000010 ; inline    ! x group
-! Read, write, execute/search by others
-: S_IRWXO OCT: 0000007 ; inline    ! rwx mask other
 : S_IROTH OCT: 0000004 ; inline    ! r other
 : S_IWOTH OCT: 0000002 ; inline    ! w other
 : S_IXOTH OCT: 0000001 ; inline    ! x other
 
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 FUNCTION: int chmod ( char* path, mode_t mode ) ;
-
 FUNCTION: int fchmod ( int fd, mode_t mode ) ;
-
 FUNCTION: int mkdir ( char* path, mode_t mode ) ;
 
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-<<
-  os
-  {
+<< os {
     { linux   [ "unix.stat.linux"   require ] }
     { macosx  [ "unix.stat.macosx"  require ] }
     { freebsd [ "unix.stat.freebsd" require ] }
     { netbsd  [ "unix.stat.netbsd"  require ] }
     { openbsd [ "unix.stat.openbsd" require ] }
-  }
-  case
->>
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+} case >>
 
 : file-status ( pathname -- stat )
-    "stat" <c-object> dup >r
-    [ stat ] unix-system-call drop
-    r> ;
+    "stat" <c-object> [
+        [ stat ] unix-system-call drop
+    ] keep ;
 
 : link-status ( pathname -- stat )
-    "stat" <c-object> dup >r
-    [ lstat ] unix-system-call drop
-    r> ;
+    "stat" <c-object> [
+        [ lstat ] unix-system-call drop
+    ] keep ;
index 8f9c5082dfed3d6ff366ea41e36dae2339876d4c..156e756641ab5b3ae9c88b6f69048632607850d2 100644 (file)
@@ -22,6 +22,7 @@ TYPEDEF: __uint32_t uid_t
 TYPEDEF: __uint32_t gid_t
 TYPEDEF: __int64_t  off_t
 TYPEDEF: __int64_t  blkcnt_t
+TYPEDEF: __int64_t  ino64_t
 TYPEDEF: __int32_t  blksize_t
 TYPEDEF: long       ssize_t
 TYPEDEF: __int32_t  pid_t