hush: rework input char buffering to allow more than one-deep peek
No binary (build failed)
—
(log yok)
| @@ -0,0 +1,5 @@ | |
| + | Assignments only: c=a |
| + | Assignments and a command: c=a |
| + | Assignments and a builtin: c=a |
| + | Assignments and a function: c=a |
| + | Done |
| @@ -0,0 +1,22 @@ | |
| + | a=a |
| + | |
| + | b=b |
| + | c=c |
| + | # Second assignment depends on the first: |
| + | b=$a c=$b |
| + | echo Assignments only: c=$c |
| + | |
| + | b=b |
| + | c=c |
| + | b=$a c=$b "$THIS_SH" -c 'echo Assignments and a command: c=$c' |
| + | |
| + | b=b |
| + | c=c |
| + | b=$a c=$b eval 'echo Assignments and a builtin: c=$c' |
| + | |
| + | b=b |
| + | c=c |
| + | f() { echo Assignments and a function: c=$c; } |
| + | b=$a c=$b f |
| + | |
| + | echo Done |
| @@ -0,0 +1,40 @@ | |
| + | Testing: in x y z |
| + | .x. |
| + | .y. |
| + | .z. |
| + | Testing: in u $empty v |
| + | .u. |
| + | .v. |
| + | Testing: in u " $empty" v |
| + | .u. |
| + | . . |
| + | .v. |
| + | Testing: in u $empty $empty$a v |
| + | .u. |
| + | .a. |
| + | .v. |
| + | Testing: in $a_b |
| + | .a. |
| + | .b. |
| + | Testing: in $* |
| + | .abc. |
| + | .d. |
| + | .e. |
| + | Testing: in $@ |
| + | .abc. |
| + | .d. |
| + | .e. |
| + | Testing: in -$*- |
| + | .-abc. |
| + | .d. |
| + | .e-. |
| + | Testing: in -$@- |
| + | .-abc. |
| + | .d. |
| + | .e-. |
| + | Testing: in $a_b -$a_b- |
| + | .a. |
| + | .b. |
| + | .-a. |
| + | .b-. |
| + | Finished |
| @@ -0,0 +1,40 @@ | |
| + | if test $# = 0; then |
| + | exec "$THIS_SH" "$0" abc "d e" |
| + | fi |
| + | |
| + | echo 'Testing: in x y z' |
| + | for a in x y z; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in u $empty v' |
| + | empty='' |
| + | for a in u $empty v; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in u " $empty" v' |
| + | empty='' |
| + | for a in u " $empty" v; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in u $empty $empty$a v' |
| + | a='a' |
| + | for a in u $empty $empty$a v; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in $a_b' |
| + | a_b='a b' |
| + | for a in $a_b; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in $*' |
| + | for a in $*; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in $@' |
| + | for a in $@; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in -$*-' |
| + | for a in -$*-; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in -$@-' |
| + | for a in -$@-; do echo ".$a."; done |
| + | |
| + | echo 'Testing: in $a_b -$a_b-' |
| + | a_b='a b' |
| + | for a in $a_b -$a_b-; do echo ".$a."; done |
| + | |
| + | echo Finished |
| @@ -0,0 +1,11 @@ | |
| + | b1=-qwerty-t-\-"-`---z-*-?- |
| + | b1=-qwerty-t-\-"-`---z-*-?- |
| + | b2=-qwerty-\t-\-"-`-\--\z-\*-\?- |
| + | b2=-qwerty-\t-\-"-`-\--\z-\*-\?- |
| + | b3=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | b3=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | c=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | c=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | c=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | c=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | Done: 0 |
| @@ -0,0 +1,23 @@ | |
| + | # Test for correct handling of backslashes |
| + | a=qwerty |
| + | |
| + | b=-$a-\t-\\-\"-\`-\--\z-\*-\?- |
| + | echo b1=$b |
| + | echo "b1=$b" |
| + | b="-$a-\t-\\-\"-\`-\--\z-\*-\?-" |
| + | echo b2=$b |
| + | echo "b2=$b" |
| + | b='-$a-\t-\\-\"-\`-\--\z-\*-\?-' |
| + | echo b3=$b |
| + | echo "b3=$b" |
| + | |
| + | c=$b |
| + | echo "c=$c" |
| + | c=${b} |
| + | echo "c=$c" |
| + | c="$b" |
| + | echo "c=$c" |
| + | c="${b}" |
| + | echo "c=$c" |
| + | |
| + | echo "Done: $?" |
| @@ -0,0 +1,3 @@ | |
| + | Ok |
| + | Ba d |
| + | Ok |
| @@ -0,0 +1,15 @@ | |
| + | ad="Ok" |
| + | a="Ba" |
| + | |
| + | # "Ok" |
| + | echo $a\ |
| + | d |
| + | |
| + | # This variable contains backslash+newline! |
| + | e='echo $a\ |
| + | d' |
| + | |
| + | # "Ba d" |
| + | eval $e |
| + | # "Ok" |
| + | eval "$e" |
| @@ -0,0 +1,3 @@ | |
| + | Ok |
| + | Ba d |
| + | Ok |
| @@ -0,0 +1,15 @@ | |
| + | ad="Ok" |
| + | a="Ba" |
| + | |
| + | # "Ok" |
| + | echo $a\ |
| + | d |
| + | |
| + | # This variable contains backslash+newline! |
| + | e='echo $a\ |
| + | d' |
| + | |
| + | # "Ba d" |
| + | eval $e |
| + | # "Ok" |
| + | eval "$e" |