Merge branch 'master' of git://factorcode.org/git/factor

db4
Doug Coleman 2007-04-14 05:49:24 -05:00
commit 04de7004b7
7 changed files with 71 additions and 19 deletions

View File

@ -7,6 +7,56 @@ io.encodings.utf8 ;
[ ] [ "blahblah" temp-file make-directory ] unit-test [ ] [ "blahblah" temp-file make-directory ] unit-test
[ t ] [ "blahblah" temp-file directory? ] unit-test [ t ] [ "blahblah" temp-file directory? ] unit-test
[ t ] [
[ temp-directory "loldir" append-path delete-directory ] ignore-errors
temp-directory [
"loldir" make-directory
] with-directory
temp-directory "loldir" append-path exists?
] unit-test
[ ] [
[ temp-directory "loldir" append-path delete-directory ] ignore-errors
temp-directory [
"loldir" make-directory
"loldir" delete-directory
] with-directory
] unit-test
[ "file1 contents" ] [
[ temp-directory "loldir" append-path delete-directory ] ignore-errors
temp-directory [
"file1 contents" "file1" utf8 set-file-contents
"file1" "file2" copy-file
"file2" utf8 file-contents
] with-directory
"file1" temp-file delete-file
"file2" temp-file delete-file
] unit-test
[ "file3 contents" ] [
temp-directory [
"file3 contents" "file3" utf8 set-file-contents
"file3" "file4" move-file
"file4" utf8 file-contents
] with-directory
"file4" temp-file delete-file
] unit-test
[ ] [
temp-directory [
"file5" touch-file
"file5" delete-file
] with-directory
] unit-test
[ ] [
temp-directory [
"file6" touch-file
"file6" link-info drop
] with-directory
] unit-test
[ "passwd" ] [ "/etc/passwd" file-name ] unit-test [ "passwd" ] [ "/etc/passwd" file-name ] unit-test
[ "awk" ] [ "/usr/libexec/awk/" file-name ] unit-test [ "awk" ] [ "/usr/libexec/awk/" file-name ] unit-test
[ "awk" ] [ "/usr/libexec/awk///" file-name ] unit-test [ "awk" ] [ "/usr/libexec/awk///" file-name ] unit-test

View File

@ -45,6 +45,8 @@ HOOK: (file-appender) io-backend ( path -- stream )
! Pathnames ! Pathnames
: path-separator? ( ch -- ? ) windows? "/\\" "/" ? member? ; : path-separator? ( ch -- ? ) windows? "/\\" "/" ? member? ;
: path-separator ( -- string ) windows? "\\" "/" ? ;
: right-trim-separators ( str -- newstr ) : right-trim-separators ( str -- newstr )
[ path-separator? ] right-trim ; [ path-separator? ] right-trim ;

View File

@ -36,7 +36,7 @@ HELP: <mirror>
"TUPLE: circle center radius ;" "TUPLE: circle center radius ;"
"C: <circle> circle" "C: <circle> circle"
"{ 100 50 } 15 <circle> <mirror> >alist ." "{ 100 50 } 15 <circle> <mirror> >alist ."
"{ { \"center\" { 100 50 } } { \"radius\" 15 } }" "{ { \"delegate\" f } { \"center\" { 100 50 } } { \"radius\" 15 } }"
} }
} ; } ;

View File

@ -1,8 +1,9 @@
! Copyright (C) 2005, 2007 Slava Pestov. ! Copyright (C) 2005, 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: parser kernel namespaces sequences definitions io.files USING: parser kernel namespaces sequences definitions io.files
inspector continuations tuples tools.crossref tools.vocabs inspector continuations tuples tools.crossref tools.vocabs
io prettyprint source-files assocs vocabs vocabs.loader ; io prettyprint source-files assocs vocabs vocabs.loader
io.backend splitting ;
IN: editors IN: editors
TUPLE: no-edit-hook ; TUPLE: no-edit-hook ;
@ -25,11 +26,8 @@ SYMBOL: edit-hook
require ; require ;
: edit-location ( file line -- ) : edit-location ( file line -- )
edit-hook get [ >r normalize-pathname "\\\\?\\" ?head drop r>
call edit-hook get [ call ] [ no-edit-hook edit-location ] if* ;
] [
no-edit-hook edit-location
] if* ;
: edit ( defspec -- ) : edit ( defspec -- )
where [ first2 edit-location ] when* ; where [ first2 edit-location ] when* ;

View File

@ -5,7 +5,7 @@ IN: editors.ultraedit
: ultraedit-path ( -- path ) : ultraedit-path ( -- path )
\ ultraedit-path get-global [ \ ultraedit-path get-global [
program-files program-files
"\\IDM Computer Solutions\\UltraEdit-32\\uedit32.exe" append-path "IDM Computer Solutions\\UltraEdit-32\\uedit32.exe" append-path
] unless* ; ] unless* ;
: ultraedit ( file line -- ) : ultraedit ( file line -- )

View File

@ -5,10 +5,10 @@ IN: editors.wordpad
: wordpad-path ( -- path ) : wordpad-path ( -- path )
\ wordpad-path get [ \ wordpad-path get [
program-files "\\Windows NT\\Accessories\\wordpad.exe" append-path program-files "Windows NT\\Accessories\\wordpad.exe" append-path
] unless* ; ] unless* ;
: wordpad ( file line -- ) : wordpad ( file line -- )
drop wordpad-path swap 2array run-detached drop ; drop wordpad-path swap 2array dup . run-detached drop ;
[ wordpad ] edit-hook set-global [ wordpad ] edit-hook set-global

View File

@ -7,11 +7,11 @@ calendar io.encodings.binary ;
IN: io.unix.files IN: io.unix.files
M: unix-io cwd M: unix-io cwd ( -- path )
MAXPATHLEN [ <byte-array> ] [ ] bi getcwd MAXPATHLEN [ <byte-array> ] [ ] bi getcwd
[ (io-error) ] unless* ; [ (io-error) ] unless* ;
M: unix-io cd M: unix-io cd ( path -- )
chdir io-error ; chdir io-error ;
: read-flags O_RDONLY ; inline : read-flags O_RDONLY ; inline
@ -39,25 +39,26 @@ M: unix-io (file-writer) ( path -- stream )
M: unix-io (file-appender) ( path -- stream ) M: unix-io (file-appender) ( path -- stream )
open-append <writer> ; open-append <writer> ;
: touch-mode : touch-mode ( -- n )
{ O_WRONLY O_APPEND O_CREAT O_EXCL } flags ; foldable { O_WRONLY O_APPEND O_CREAT O_EXCL } flags ; foldable
M: unix-io touch-file ( path -- ) M: unix-io touch-file ( path -- )
normalize-pathname
touch-mode file-mode open touch-mode file-mode open
dup 0 < [ err_no EEXIST = [ err_no io-error ] unless ] when dup 0 < [ err_no EEXIST = [ err_no io-error ] unless ] when
close ; close ;
M: unix-io move-file ( from to -- ) M: unix-io move-file ( from to -- )
rename io-error ; [ normalize-pathname ] 2apply rename io-error ;
M: unix-io delete-file ( path -- ) M: unix-io delete-file ( path -- )
unlink io-error ; normalize-pathname unlink io-error ;
M: unix-io make-directory ( path -- ) M: unix-io make-directory ( path -- )
OCT: 777 mkdir io-error ; normalize-pathname OCT: 777 mkdir io-error ;
M: unix-io delete-directory ( path -- ) M: unix-io delete-directory ( path -- )
rmdir io-error ; normalize-pathname rmdir io-error ;
: (copy-file) ( from to -- ) : (copy-file) ( from to -- )
dup parent-directory make-directories dup parent-directory make-directories
@ -68,8 +69,9 @@ M: unix-io delete-directory ( path -- )
] with-disposal ; ] with-disposal ;
M: unix-io copy-file ( from to -- ) M: unix-io copy-file ( from to -- )
[ normalize-pathname ] 2apply
[ (copy-file) ] [ (copy-file) ]
[ swap file-info file-info-permissions chmod io-error ] [ swap file-info file-info-permissions chmod io-error ]
2bi ; 2bi ;
: stat>type ( stat -- type ) : stat>type ( stat -- type )