move file flags to io.unix.files, change some word names for consistency

db4
Doug Coleman 2008-10-08 13:03:55 -05:00
parent 5afbade0a5
commit fb23eca0d9
2 changed files with 31 additions and 22 deletions

View File

@ -150,9 +150,25 @@ os {
PRIVATE>
: set-uid? ( path -- ? ) UID file-mode? ;
: set-gid? ( path -- ? ) GID file-mode? ;
: set-sticky? ( path -- ? ) STICKY file-mode? ;
: UID OCT: 0004000 ; inline
: GID OCT: 0002000 ; inline
: STICKY OCT: 0001000 ; inline
: USER-ALL OCT: 0000700 ; inline
: USER-READ OCT: 0000400 ; inline
: USER-WRITE OCT: 0000200 ; inline
: USER-EXECUTE OCT: 0000100 ; inline
: GROUP-ALL OCT: 0000070 ; inline
: GROUP-READ OCT: 0000040 ; inline
: GROUP-WRITE OCT: 0000020 ; inline
: GROUP-EXECUTE OCT: 0000010 ; inline
: OTHER-ALL OCT: 0000007 ; inline
: OTHER-READ OCT: 0000004 ; inline
: OTHER-WRITE OCT: 0000002 ; inline
: OTHER-EXECUTE OCT: 0000001 ; inline
: uid? ( path -- ? ) UID file-mode? ;
: gid? ( path -- ? ) GID file-mode? ;
: sticky? ( path -- ? ) STICKY file-mode? ;
: user-read? ( path -- ? ) USER-READ file-mode? ;
: user-write? ( path -- ? ) USER-WRITE file-mode? ;
: user-execute? ( path -- ? ) USER-EXECUTE file-mode? ;
@ -176,9 +192,12 @@ PRIVATE>
: set-other-write ( path ? -- ) OTHER-WRITE swap chmod-set-bit ;
: set-other-execute ( path ? -- ) OTHER-EXECUTE swap chmod-set-bit ;
: set-file-permissions ( path octal-n -- )
: set-file-permissions ( path n -- )
[ normalize-path ] dip chmod io-error ;
: file-permissions ( path -- n )
normalize-path file-info permissions>> ;
<PRIVATE
: make-timeval-array ( array -- byte-array )
@ -225,10 +244,14 @@ M: string set-file-group ( path string -- )
group-id
f swap set-file-ids ;
: file-uid ( path -- uid ) normalize-path file-info uid>> ;
: file-username-id ( path -- uid )
normalize-path file-info uid>> ;
: file-user-name ( path -- string ) file-uid username ;
: file-username ( path -- string )
file-username-id username ;
: file-gid ( path -- gid ) normalize-path file-info gid>> ;
: file-group-id ( path -- gid )
normalize-path file-info gid>> ;
: file-group ( path -- string ) file-gid group-name ;
: file-group-name ( path -- string )
file-group-id group-name ;

View File

@ -14,20 +14,6 @@ IN: unix.stat
: S_IFLNK OCT: 120000 ; inline ! Symbolic link.
: S_IFSOCK OCT: 140000 ; inline ! Socket.
! File Access Permissions
: UID OCT: 0004000 ; inline
: GID OCT: 0002000 ; inline
: STICKY OCT: 0001000 ; inline
: USER-READ OCT: 0000400 ; inline ! r owner
: USER-WRITE OCT: 0000200 ; inline ! w owner
: USER-EXECUTE OCT: 0000100 ; inline ! x owner
: GROUP-READ OCT: 0000040 ; inline ! r group
: GROUP-WRITE OCT: 0000020 ; inline ! w group
: GROUP-EXECUTE OCT: 0000010 ; inline ! x group
: OTHER-READ OCT: 0000004 ; inline ! r other
: OTHER-WRITE OCT: 0000002 ; inline ! w other
: OTHER-EXECUTE 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 ) ;