Fix FD leak
parent
00d2122a4c
commit
62f076d0c3
|
|
@ -42,11 +42,15 @@ MEMO: 'arguments' ( -- parser )
|
||||||
: assoc>env ( assoc -- env )
|
: assoc>env ( assoc -- env )
|
||||||
[ "=" swap 3append ] { } assoc>map ;
|
[ "=" swap 3append ] { } assoc>map ;
|
||||||
|
|
||||||
|
: (redirect)
|
||||||
|
>r file-mode open dup io-error dup
|
||||||
|
r> dup2 io-error close drop ;
|
||||||
|
|
||||||
: redirect ( obj mode fd -- )
|
: redirect ( obj mode fd -- )
|
||||||
{
|
{
|
||||||
{ [ pick not ] [ 3drop ] }
|
{ [ pick not ] [ 3drop ] }
|
||||||
{ [ pick +closed+ eq? ] [ close 3drop ] }
|
{ [ pick +closed+ eq? ] [ close 3drop ] }
|
||||||
{ [ t ] [ >r file-mode open dup io-error r> dup2 io-error ] }
|
{ [ t ] [ (redirect) ] }
|
||||||
} cond ;
|
} cond ;
|
||||||
|
|
||||||
: setup-redirection ( -- )
|
: setup-redirection ( -- )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue