hush: support "! cmd | cmd" negation

function                                             old     new   delta
done_word                                            749     791     +42
run_list                                            1821    1859     +38
checkjobs                                            334     351     +17
done_pipe                                             61      74     +13
static.reserved_list                                 132     144     +12
initialize_context                                    53      45      -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/1 up/down: 122/-8)            Total: 114 bytes
This commit is contained in:
Denis Vlasenko
2008-06-14 11:00:17 +00:00
parent 6108dc4df6
commit a84420062a
6 changed files with 172 additions and 90 deletions

View File

@ -0,0 +1,2 @@
bash 3.2 fails this
hush: syntax error

View File

@ -0,0 +1,2 @@
echo bash 3.2 fails this
! ! true

View File

@ -0,0 +1,35 @@
! printing !
0
1
1
0
0
0
!
a
b
c
! 1
a 1
b 1
c 1
! 1
a 1
b 1
c 1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

View File

@ -0,0 +1,16 @@
echo ! printing !
! false
echo $?
! true
echo $?
if ! false; then false; echo $?; fi
echo $?
if ! false; then ! false; echo $?; fi
echo $?
for a in ! a b c; do echo $a; done
for a in ! a b c; do ! echo -n "$a "; echo $?; done
for a in ! a b c; do ! /bin/echo -n "$a "; echo $?; done
for a in ! a b c; do ! echo -n "$a " | false; echo $?; done
for a in ! a b c; do ! echo -n "$a " | true; echo $?; done
for a in ! a b c; do ! { echo -n "$a " | false; }; echo $?; done
for a in ! a b c; do ! { echo -n "$a " | true; }; echo $?; done

View File

@ -1,8 +1,8 @@
#!/bin/sh
test -x hush || {
echo "No ./hush?! Perhaps you want to run 'ln -s ../../busybox hush'"
exit
echo "No ./hush - creating a link to ../../busybox"
ln -s ../../busybox hush
}
PATH="$PWD:$PATH" # for hush and recho/zecho/printenv