Bash declare built-in regression loses array quotations

Matt D. matt@codespunk.com
Fri Jan 13 20:00:00 GMT 2017


I updated yesterday to the latest Cygwin x86 release which included an 
updated Bash 4.4.5(1). This release changes the default behavior of the 
built-in 'declare' command which is causing scripts which relied on this 
functionality to break.

The following test will illustrate the change:
declare -A list
list[a]=1
list[b]=2
list[c]=3
declare -p | grep list=

On Bash 4.4.5(1) the output is:
declare -A list=([a]="1" [b]="2" [c]="3" )

Previously the result was:
declare -A list='([a]="1" [b]="2" [c]="3" )'

I can confirm that this has always been the expected output when running 
this command on Cygwin and Linux. I run CentOS which does not track the 
latest Bash release and I don't know the procedure to check whether this 
is an upstream regression or not.

I have rolled back to Bash 4.3.48-8 which has restored the previous 
functionality.

Please advise.

Matt D.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list