hush: heredoc support, based on patch by Mike Frysinger (vapier AT gentoo.org)
some TODOs are to be attacked later function old new delta parse_stream 1461 1866 +405 parse_redirect - 265 +265 setup_heredoc - 116 +116 setup_redirects 151 196 +45 builtin_exit 49 47 -2 redirect_opt_num 61 55 -6 setup_redirect 212 - -212 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 2/2 up/down: 831/-220) Total: 611 bytes
This commit is contained in:
@ -1,30 +1,30 @@
|
||||
# make sure we have a way of checking these things
|
||||
[ ! -e /dev/fd ] && exit 1
|
||||
cd /proc/$$/fd || cd /dev/fd || exit 1
|
||||
|
||||
[ -e /dev/fd/44 ] && exit 1
|
||||
[ -e 44 ] && exit 1
|
||||
exec 44>/dev/null
|
||||
[ -e /dev/fd/44 ] || exit 1
|
||||
[ -e 44 ] || exit 1
|
||||
echo pass fd out open
|
||||
|
||||
[ -e /dev/fd/55 ] && exit 1
|
||||
[ -e 55 ] && exit 1
|
||||
exec 55>&44
|
||||
[ -e /dev/fd/55 ] || exit 1
|
||||
[ -e 55 ] || exit 1
|
||||
echo pass fd out dup
|
||||
|
||||
exec 44>&-
|
||||
[ -e /dev/fd/44 ] && exit 1
|
||||
[ -e 44 ] && exit 1
|
||||
echo pass fd out close
|
||||
|
||||
[ -e /dev/fd/66 ] && exit 1
|
||||
[ -e 66 ] && exit 1
|
||||
exec 66</dev/null
|
||||
[ -e /dev/fd/66 ] || exit 1
|
||||
[ -e 66 ] || exit 1
|
||||
echo pass fd in open
|
||||
|
||||
[ -e /dev/fd/77 ] && exit 1
|
||||
[ -e 77 ] && exit 1
|
||||
exec 77<&66
|
||||
[ -e /dev/fd/77 ] || exit 1
|
||||
[ -e 77 ] || exit 1
|
||||
echo pass fd in dup
|
||||
|
||||
exec 66<&-
|
||||
[ -e /dev/fd/66 ] && exit 1
|
||||
[ -e 66 ] && exit 1
|
||||
echo pass fd in close
|
||||
|
5
shell/hush_test/hush-misc/heredoc1.right
Normal file
5
shell/hush_test/hush-misc/heredoc1.right
Normal file
@ -0,0 +1,5 @@
|
||||
qwe
|
||||
asd
|
||||
123
|
||||
456
|
||||
Ok
|
9
shell/hush_test/hush-misc/heredoc1.tests
Executable file
9
shell/hush_test/hush-misc/heredoc1.tests
Executable file
@ -0,0 +1,9 @@
|
||||
cat <<000; cat <<www; cat <<eee
|
||||
000
|
||||
qwe
|
||||
asd
|
||||
www
|
||||
123
|
||||
456
|
||||
eee
|
||||
echo Ok
|
Reference in New Issue
Block a user