From 9120865157d441f67a8ad8df24624eaf1781373e Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 26 Mar 2008 18:47:56 -0500 Subject: [PATCH] fixing the launcher --- extra/io/unix/launcher/launcher.factor | 3 +- extra/io/windows/files/files.factor | 1 - extra/io/windows/launcher/launcher.factor | 5 ++-- extra/io/windows/nt/files/files.factor | 5 ++-- extra/io/windows/nt/nt-tests.factor | 36 ----------------------- 5 files changed, 8 insertions(+), 42 deletions(-) delete mode 100755 extra/io/windows/nt/nt-tests.factor diff --git a/extra/io/unix/launcher/launcher.factor b/extra/io/unix/launcher/launcher.factor index 11c608c68f..0cbb78b881 100755 --- a/extra/io/unix/launcher/launcher.factor +++ b/extra/io/unix/launcher/launcher.factor @@ -4,7 +4,7 @@ USING: io io.backend io.launcher io.nonblocking io.unix.backend io.unix.files io.nonblocking sequences kernel namespaces math system alien.c-types debugger continuations arrays assocs combinators unix.process strings threads unix -io.unix.launcher.parser accessors ; +io.unix.launcher.parser accessors io.files ; IN: io.unix.launcher ! Search unix first @@ -67,6 +67,7 @@ USE: unix : spawn-process ( process -- * ) [ + current-directory get cd setup-priority setup-redirection dup pass-environment? [ diff --git a/extra/io/windows/files/files.factor b/extra/io/windows/files/files.factor index 35aaf456a3..094014fac6 100755 --- a/extra/io/windows/files/files.factor +++ b/extra/io/windows/files/files.factor @@ -90,4 +90,3 @@ SYMBOLS: +read-only+ +hidden+ +system+ M: windows-nt-io file-info ( path -- info ) get-file-information-stat ; - diff --git a/extra/io/windows/launcher/launcher.factor b/extra/io/windows/launcher/launcher.factor index 2d281d0fe8..84f8360840 100755 --- a/extra/io/windows/launcher/launcher.factor +++ b/extra/io/windows/launcher/launcher.factor @@ -5,7 +5,7 @@ io.windows io.windows.nt.pipes libc io.nonblocking io.streams.duplex windows.types math windows.kernel32 windows namespaces io.launcher kernel sequences windows.errors assocs splitting system threads init strings combinators -io.backend accessors concurrency.flags ; +io.backend accessors concurrency.flags io.files ; IN: io.windows.launcher TUPLE: CreateProcess-args @@ -27,7 +27,8 @@ TUPLE: CreateProcess-args "STARTUPINFO" "STARTUPINFO" heap-size over set-STARTUPINFO-cb >>lpStartupInfo "PROCESS_INFORMATION" >>lpProcessInformation - TRUE >>bInheritHandles ; + TRUE >>bInheritHandles + current-directory get >>lpCurrentDirectory ; : call-CreateProcess ( CreateProcess-args -- ) { diff --git a/extra/io/windows/nt/files/files.factor b/extra/io/windows/nt/files/files.factor index 540737004b..1c8d88c872 100755 --- a/extra/io/windows/nt/files/files.factor +++ b/extra/io/windows/nt/files/files.factor @@ -3,7 +3,7 @@ io.timeouts io.nonblocking io.windows io.windows.nt.backend kernel libc math threads windows windows.kernel32 alien.c-types alien.arrays sequences combinators combinators.lib sequences.lib ascii splitting alien strings assocs -combinators.cleave ; +combinators.cleave namespaces ; IN: io.windows.nt.files M: windows-nt-io cwd @@ -63,11 +63,12 @@ ERROR: not-absolute-path ; ERROR: nonstring-pathname ; ERROR: empty-pathname ; +USE: tools.walker M: windows-nt-io normalize-pathname ( string -- string ) dup string? [ nonstring-pathname ] unless dup empty? [ empty-pathname ] when { { CHAR: / CHAR: \\ } } substitute - cwd swap windows-append-path + current-directory get swap windows-append-path [ "/\\." member? ] right-trim dup peek CHAR: : = [ "\\" append ] when ; diff --git a/extra/io/windows/nt/nt-tests.factor b/extra/io/windows/nt/nt-tests.factor deleted file mode 100755 index 6353bfe86e..0000000000 --- a/extra/io/windows/nt/nt-tests.factor +++ /dev/null @@ -1,36 +0,0 @@ -USING: io.files kernel tools.test io.backend -io.windows.nt.files splitting ; -IN: io.windows.nt.tests - -[ "c:\\foo\\" ] [ "c:\\foo\\bar" parent-directory ] unit-test -[ "c:\\" ] [ "c:\\foo\\" parent-directory ] unit-test -[ "c:\\" ] [ "c:\\foo" parent-directory ] unit-test -! { "c:" "c:\\" "c:/" } [ directory ] each -- all do the same thing -[ "c:" ] [ "c:\\" parent-directory ] unit-test -[ "Z:" ] [ "Z:\\" parent-directory ] unit-test -[ "c:" ] [ "c:" parent-directory ] unit-test -[ "Z:" ] [ "Z:" parent-directory ] unit-test -[ t ] [ "c:\\" right-trim-separators root-directory? ] unit-test -[ t ] [ "Z:\\" right-trim-separators root-directory? ] unit-test -[ f ] [ "c:\\foo" root-directory? ] unit-test -[ f ] [ "." root-directory? ] unit-test -[ f ] [ ".." root-directory? ] unit-test - -[ ] [ "" resource-path cd ] unit-test - -[ "\\foo\\bar" ] [ "/foo/bar" normalize-pathname ":" split1 nip ] unit-test - -[ "\\\\?\\C:\\builds\\factor\\log.txt" ] [ - "C:\\builds\\factor\\12345\\" - "..\\log.txt" windows-append-path -] unit-test - -[ "\\\\?\\C:\\builds\\" ] [ - "C:\\builds\\factor\\12345\\" - "..\\.." windows-append-path -] unit-test - -[ "\\\\?\\C:\\builds\\" ] [ - "C:\\builds\\factor\\12345\\" - "..\\.." windows-append-path -] unit-test