commit bash-20180720 snapshot

This commit is contained in:
Chet Ramey
2018-07-24 09:17:33 -04:00
parent 96efdbb5b4
commit 8d125d8b5f
45 changed files with 6793 additions and 5492 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/chet/bash/bash-current
BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+9
View File
@@ -220,3 +220,12 @@ declare -A a=(["80's"]="Depeche Mode" )
1+5
declare -A a=(["\$(date >&2)"]="5" )
declare -A myarray=([foo]="bleh" ["foo[bar"]="bleh" )
./assoc10.sub: line 1: declare: a: cannot convert indexed to associative array
f: declare -a a
./assoc10.sub: line 4: declare: a: cannot convert associative to indexed array
f: declare -A a
f: declare -a a
main: declare -- a="7"
f: declare -A a
main: declare -- a="42"
+2
View File
@@ -217,3 +217,5 @@ ${THIS_SH} ./assoc8.sub
# new shopt option to prevent multiple expansion of assoc array subscripts
${THIS_SH} ./assoc9.sub
${THIS_SH} ./assoc10.sub
+17
View File
@@ -0,0 +1,17 @@
f() { declare -a a; declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
f
f() { declare -A a; declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
f
echo
f() { declare -a a; echo -n "$FUNCNAME: " ; declare -p a; }
a=7
f
echo -n 'main: '; declare -p a
f() { declare -A a; echo -n "$FUNCNAME: " ; declare -p a; }
a=42
f
echo -n 'main: '; declare -p a
+21
View File
@@ -440,3 +440,24 @@ declare -n foo="bar"
declare -- bar
declare -- foo="bar"
declare -- bar
declare -a v=([0]="Y")
r: <Y>
v: <Y>
declare -n ref="var"
declare -a var=([0]="X")
declare -n ref="var"
declare -a var=([0]="X")
declare -n ref="var"
./nameref20.sub: line 23: declare: var: not found
outside:
declare -a foo=([0]="X")
declare -n ref="var"
declare -a var=([0]="X")
outside:
./nameref20.sub: line 38: declare: ref: not found
./nameref20.sub: line 38: declare: var: not found
declare -n ref="var"
declare -- var="X"
outside:
./nameref20.sub: line 45: declare: ref: not found
./nameref20.sub: line 45: declare: var: not found
+47
View File
@@ -0,0 +1,47 @@
# a collection of cases in bug reports after bash-5.0-alpha was released
declare -n r=v[0]
v=(X); r=Y
declare -p ${!v*}
printf "%s: <%s>\n" "r" "$r" "v" "$v"
unset -n r
unset -v v
declare -n ref=var; declare -a ref
ref=(X)
declare -p ref var
unset -n ref
unset -v var
f() { declare -n ref=var; declare ref=(X); declare -p ref var; };
f
unset -f f
f() { declare -n ref=var; declare -g ref=(X); declare -p ref var; };
declare -n ref=foo
f
echo outside:
declare -p foo
unset -n ref
unset -v foo
unset -f f
f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref var; }
f
echo outside:
declare -p ref var
unset -f f
f() { declare -n ref=var; declare ref; ref=X; declare -p ref var; }
f
echo outside:
declare -p ref var
unset -f f
+34
View File
@@ -86,3 +86,37 @@ test'string
a'b'c
foo b c baz
foo 'bar baz
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
=====
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
=====
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
=====
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
argv[1] = <>
+1
View File
@@ -121,3 +121,4 @@ echo "${foo:-string \\}"
echo ${foo:-string \\\}}
${THIS_SH} ./quote1.sub
${THIS_SH} ./quote2.sub
+42
View File
@@ -0,0 +1,42 @@
x=x
e=
recho ${x:+""}
recho ${x:+ ""}
recho ${x:+"" }
recho ${x:+"$e"}
recho ${x:+ "$e"}
recho ${x:+"$e""$e"""}
recho ${x:+"$e""$e"""}
recho ${x:+"$e" "$e"""}
recho ${x:+"$e""$e" ""}
recho ${x:+ "$e""$e"""}
echo =====
recho ${x:+''}
recho ${x:+ ''}
recho ${x:+'' }
recho ${x:+'' ''}
recho ${x:+$e''}
recho ${x:+''$e}
recho ${x:+''$e $e''}
echo =====
recho ${x:+"$(:)"}
recho ${x:+ "$(:)"}
recho ${x:+"$(:)""$(:)"""}
recho ${x:+"$(:)""$(:)"""}
recho ${x:+"$(:)" "$(:)"""}
recho ${x:+"$(:)""$(:)" ""}
recho ${x:+ "$(:)""$(:)"""}
echo =====
recho ${x:+"`:`"}
recho ${x:+ "`:`"}
recho ${x:+"`:`""`:`"""}
recho ${x:+"`:`""`:`"""}
recho ${x:+"`:`" "`:`"""}
recho ${x:+"`:`""`:`" ""}
recho ${x:+ "`:`""`:`"""}
+8
View File
@@ -152,6 +152,14 @@ outside: declare -x var="global"
foo=<unset> environment foo=
foo=foo environment foo=foo
foo=foo environment foo=foo
./varenv13.sub: line 3: `var[0]': not a valid identifier
./varenv13.sub: line 3: `var[@]': not a valid identifier
./varenv13.sub: line 1: declare: var: not found
./varenv13.sub: line 12: var[@]: bad array subscript
declare -A var=([0]="X" )
help
./varenv13.sub: line 21: `var[0]': not a valid identifier
1
a=z
a=b
a=z
+3
View File
@@ -234,5 +234,8 @@ ${THIS_SH} ./varenv11.sub
# temporary environment variable propagation and scoping in posix mode
${THIS_SH} ./varenv12.sub
# temporary environment and invalid shell indentifier names
${THIS_SH} ./varenv13.sub
# make sure variable scoping is done right
tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
+23
View File
@@ -0,0 +1,23 @@
f() { declare -p ${!var*} | grep ^var; declare -p var ; }
var[0]=X var[@]=Y f
unset -f f
unset -v var
typeset -A var
f() { declare -p ${!var*}; }
var[0]=X var[@]=Y
f
: ${THIS_SH:=./bash}
env 'v[0]=help' ${THIS_SH} -c 'printenv "v[0]"'
unset -v var
f() { test -v 'var[0]'; echo $?; }
var[0]=X f
unset -v var