[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: segfault w/ localvar_inherit and associative array insert
From: |
Chet Ramey |
Subject: |
Re: segfault w/ localvar_inherit and associative array insert |
Date: |
Fri, 27 Jul 2018 11:38:08 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 7/26/18 3:15 PM, Grisha Levit wrote:
> It seems that in general the array type is inherited just fine, there is an
> issue only in the case that:
> * the `A' attribute is inherited but not explicitly supplied
> * we are creating the local variable with the `declare' command
> (i.e. it is not already an existing local variable)
> * we are performing a compound assignment/append operation in the
> same declare command
Exactly. Look at the third point. A statement like `declare x+=( [0]=foo)'
means to create a local array variable, since the -A option is not
supplied. Bash is consistent in defaulting to indexed array variables when
you don't specify -A and assign a value using the compound assignment
syntax. So you create a local indexed array variable, and when you attempt
to inherit the value from a global associative array before performing any
specified assignment, you should either ignore the inherited value or throw
an error.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
Re: segfault w/ localvar_inherit and associative array insert, Chet Ramey, 2018/07/30