Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14458

Re: delcare -a on a nameref in a function modifies nameref instead of target

From Grisha Levit <grishalevit@gmail.com>
Newsgroups gnu.bash.bug
Subject Re: delcare -a on a nameref in a function modifies nameref instead of target
Date 2018-08-06 22:13 -0400
Message-ID <mailman.4781.1533608054.1292.bug-bash@gnu.org> (permalink)
References <CAMu=BrqTimtENjRABPgRdDhn5bQG2zBMv5YfQsNQDETh6oAjeQ@mail.gmail.com> <CAMu=Brq3CfiUWmauM8n=MYHeaWSywE5_sEJzBd0ET3SrrB+1KA@mail.gmail.com> <ae9ccdae-89e3-388b-d6e5-e1ce6cd914dd@case.edu> <CAMu=Brp59ZhQxf8e9PqhVL4QsoE-qASRcuJ=vz7XqBKgO-zsGw@mail.gmail.com> <a052dd06-5dff-2e27-ade4-065f89d9dcc1@case.edu>

Show all headers | View raw


A few more problematic test cases in this vein (tested against latest
devel snapshot 20180803).

f() { local -n ref=var; local -A ref=([1]=); ref=([2]=); declare -p ref var; }

unset ref var; f
# declare -An ref=()
# declare -A var=([1]="" )
declare -p ref
# declare -a ref=([2]="")

unset ref; var=0; f
# declare -An ref=([1]="" )
# declare -- var="0"
declare -p ref
# declare -a ref=([2]="")


f() { local -n ref=var; local -a ref=([1]=); ref=([2]=); declare -p ref var; }

unset ref var; f
# declare -an ref=()
# declare -a var=([1]="")
declare -p ref
# declare -a ref=([2]="")

unset ref; var=0; f
# declare -an ref=([1]="")
# declare -- var="0"
declare -p ref
# declare -a ref=([2]="")


# same issues for `local -[iluctrx] ref=...'
f() { local -n ref=var; local -i ref=([1]=); declare -p ref var; }

unset var; f
# declare -in ref="var"
# declare -ai var=([1]="0")

var=0; f
# declare -in ref="var"
# declare -a var=([1]="")


# same issue for `local -[ilucAa] ref=...'
f() { local -n ref=var; local ref=1; declare -p ref var; }; var=0; f

var=0; f
# bash: local: `1': invalid variable name for name reference
# declare -n ref="var"
# declare -- var="0"

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: delcare -a on a nameref in a function modifies nameref instead of target Grisha Levit <grishalevit@gmail.com> - 2018-08-06 22:13 -0400

csiph-web