commit bash-20160506 snapshot

This commit is contained in:
Chet Ramey
2016-05-09 16:20:21 -04:00
parent f30e223041
commit 814e1ff513
23 changed files with 663 additions and 77 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/bash/bash-current
BUILD_DIR=/usr/local/build/chet/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+65
View File
@@ -166,3 +166,68 @@ declare -i bar="8"
8
declare -n foo="bar"
./nameref10.sub: line 64: typeset: bar: not found
./nameref11.sub: line 1: declare: /: invalid variable name for name reference
./nameref11.sub: line 2: declare: /: invalid variable name for name reference
./nameref11.sub: line 3: `/': not a valid identifier
./nameref11.sub: line 4: declare: `/': not a valid identifier
./nameref11.sub: line 5: `/': not a valid identifier
1) /
#? ./nameref11.sub: line 6: `/': not a valid identifier
x
./nameref11.sub: line 7: ((: `0': not a valid identifier
./nameref11.sub: line 8: declare: 0: invalid variable name for name reference
./nameref11.sub: line 9: declare: /: invalid variable name for name reference
./nameref11.sub: line 10: declare: /: invalid variable name for name reference
./nameref11.sub: line 11: `/': not a valid identifier
./nameref11.sub: line 12: `/': not a valid identifier
./nameref11.sub: line 13: exec: `10': not a valid identifier
./nameref11.sub: line 13: r: cannot assign fd to variable
./nameref11.sub: line 14: warning: coproc: r: removing nameref attribute
63
./nameref11.sub: line 15: declare: RO: readonly variable
./nameref11.sub: line 15: RO: readonly variable
./nameref11.sub: line 16: declare: /: invalid variable name for name reference
/
./nameref11.sub: line 17: declare: /: invalid variable name for name reference
./nameref11.sub: illegal option -- h
./nameref11.sub: line 18: getopts: `?': not a valid identifier
./nameref11.sub: line 19: warning: r: removing nameref attribute
declare -a r=()
./nameref11.sub: line 20: declare: r: reference variable cannot be an array
./nameref11.sub: line 21: printf: `/': not a valid identifier
./nameref12.sub: line 6: declare: /: invalid variable name for name reference
./nameref12.sub: line 9: declare: %: invalid variable name for name reference
./nameref12.sub: line 13: `^': not a valid identifier
declare -n r
declare -a foo
declare -a foo=([0]="7")
./nameref12.sub: line 26: declare: `42': not a valid identifier
./nameref12.sub: line 27: declare: x: not found
declare -nr RO="foo"
./nameref12.sub: line 37: `/': not a valid identifier
0 0
./nameref12.sub: line 38: `/': not a valid identifier
./nameref12.sub: line 43: declare: `7*6': not a valid identifier
./nameref12.sub: line 43: declare: foo: not found
./nameref12.sub: line 45: `7*6': not a valid identifier
declare -n ref="var"
declare -n ref="var"
declare -- a
declare -n r="a"
declare -- a
declare -n r="a"
0
declare -n r="P"
declare -n ref="var"
declare -- a
declare -n r="a"
0
declare -n r
declare -n r
./nameref13.sub: line 88: typeset: 12345: invalid variable name for name reference
declare -n foo
./nameref13.sub: line 97: typeset: 12345: invalid variable name for name reference
declare -n foo
+3
View File
@@ -125,3 +125,6 @@ ${THIS_SH} ./nameref7.sub
${THIS_SH} ./nameref8.sub
${THIS_SH} ./nameref9.sub
${THIS_SH} ./nameref10.sub
${THIS_SH} ./nameref11.sub
${THIS_SH} ./nameref12.sub
${THIS_SH} ./nameref13.sub
+21
View File
@@ -0,0 +1,21 @@
r=/; declare -n r ; unset r
declare -n r=/ ; unset -n r
declare -n r; r=/ ; unset -n r
declare -n r; declare r=/ ; unset -n r
declare -n r; for r in /; do :; done ; unset -n r
declare -n r; select r in /; do :; done <<< 1; echo x; echo $r ; unset -n r
declare -n r; ((r=0)) ; unset -n r
((r=0)); declare -n r ; unset -n r
r=/ declare -n r ; unset -n r
f() { declare -n r; }; r=/ f ; unset r
f() { echo $r; }; declare -n r; r=/ f ; unset -n r
declare -n r; : ${r:=/} ; unset -n r
declare -n r; exec {r}>/dev/null ; unset -n r
declare -n r; coproc r { :; }; echo $r ; unset r
declare -r RO=x; r=$RO; declare -n r; x=y; declare -n RO; RO=z; declare -p RO; echo "$RO"
s=/; declare -n r=s; declare -n s; echo $r ; unset -n r ; unset -n s
declare -n r=s; declare -n s; s=/ ; unset -n r; unset -n s
declare -n r; getopts x r -h ; unset r; unset -n r
declare -n r; mapfile r < /dev/null ; declare -p r; unset r ; unset -n r
mapfile r < /dev/null; declare -n r ; unset r ; unset -n r
declare -n r; printf -v r /
+65
View File
@@ -0,0 +1,65 @@
declare -n r
declare -n r
unset -n r
r=foo
declare -n r=/
r=%
declare -n r
unset r
declare -n r
r=^
declare -p r
unset -n r
declare -n foo
declare -a foo
declare -p foo
foo[0]=7
declare -p foo
unset foo
declare -n x
declare x=42
declare -p x
declare -n -r RO=foo
declare -p RO
unset -n r; unset r
f() { echo $r; }
declare -n r
r=/ /usr/bin/sum < /dev/null
r=/ f
unset -f f
# the details of this may change; this will tell me when they do
declare -n foo ; declare -i foo=7*6 ; declare -p foo
unset -n foo
declare -n foo ; declare -i foo ; foo=7*6 ; declare -p foo
# used to be buggy
f()
{
unset var
declare -n ref=var
declare -n ref
declare -p ref
}
f
unset -f f
f()
{
local var
declare -n ref=var
declare -n ref
declare -p ref
}
f
+102
View File
@@ -0,0 +1,102 @@
declare -nt r=a
f()
{
declare a
declare -n r=a
declare -p a r
}
f
unset -f f
f()
{
declare a
declare -n r
r=a
declare -p a r
}
f
echo $?
unset -f f
P=12345
function foo
{
typeset -n r
typeset -n r=P
typeset -p r
}
foo
unset P foo
ref=outside
f()
{
unset var
declare -n ref=var
declare -n ref;
declare -p ref;
}
f
unset ref foo
typeset -n r=a
f()
{
typeset a
typeset -n r
typeset -n r
r=a
typeset -p a r
}
f
echo $?
unset -n r
unset -f f
function foo
{
typeset -n r
typeset -n r
typeset -p r
}
foo
unset -f foo
function foo
{
typeset r
typeset -n r
typeset -p r
}
foo
unset -f foo
foo()
{
typeset -n foo
typeset foo=12345
typeset -p foo
}
foo
unset -f foo
foo()
{
typeset -n foo
typeset -n foo=12345
typeset -p foo
}
foo
unset -f foo