fix <process-stream> memory corruption error

chris.double 2006-09-08 02:26:43 +00:00
parent 6a69c77574
commit 147b13e32e
1 changed files with 12 additions and 3 deletions

View File

@ -1,12 +1,21 @@
IN: process
USING: compiler io io-internals kernel parser ;
USING: compiler io io-internals kernel parser generic ;
FUNCTION: int system ( char* command ) ;
FUNCTION: void* popen ( char* command, char* type ) ;
FUNCTION: int pclose ( void* file ) ;
: <process-stream> ( command mode -- stream )
popen dup <c-stream> ;
TUPLE: process-stream pipe ;
C: process-stream ( command mode -- stream )
>r popen dup r>
[ set-process-stream-pipe ] keep
>r dup <duplex-c-stream> r>
[ set-delegate ] keep ;
M: process-stream stream-close
process-stream-pipe [ pclose drop ] when* ;
: !" parse-string system drop ; parsing