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:
Denis Vlasenko
2009-04-07 02:29:51 +00:00
parent ab2b064342
commit 6c9be7f451
4 changed files with 319 additions and 115 deletions

View File

@ -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

View File

@ -0,0 +1,5 @@
qwe
asd
123
456
Ok

View File

@ -0,0 +1,9 @@
cat <<000; cat <<www; cat <<eee
000
qwe
asd
www
123
456
eee
echo Ok