Path: csiph.com!fu-berlin.de!usenet.stanford.edu!not-for-mail From: Grisha Levit Newsgroups: gnu.bash.bug Subject: delcare -a on a nameref in a function modifies nameref instead of target Date: Tue, 17 Jul 2018 17:47:20 -0400 Lines: 22 Approved: bug-bash@gnu.org Message-ID: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: usenet.stanford.edu 1531864057 20659 208.118.235.17 (17 Jul 2018 21:47:37 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash Envelope-to: bug-bash@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=obcvdHHbNwkQUPSrWA/W75UWKJyAGSynLuIQjZ4wkfw=; b=kmNwOXrNdX+FkLD3Se8PhLxczVTzAUtR1MWyGvsZkZICT5BBq3lJ4tiywF/oA3fDOo MuMBiPAO9VOTizjo6EWM1Tara2fvMw0LeZUqM1OAIWPSDjUU7gNH+9fqG3gyv4r4P5ou 9sZ8yt5sACYPaGrmGMNKM4erzrftmR9jkA4NmkLBOUycbJ6p56qryp4GlGcAc6At70PM Z2HXCmmUOL/K+Ycnm1HOnsDbB8QoiIiehNsB5JIZvISbYbZG/Hu8vRpcWuWMhFxrYMsb ml7XSDUOZZAx4hRBt/O+2NmSV3V2V2NCsmbEoq4gYo2GeBeZGAqiU/ygq10cd0w54irv Tqkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=obcvdHHbNwkQUPSrWA/W75UWKJyAGSynLuIQjZ4wkfw=; b=UXdb44r4IJvdB0KH1vke3a+vLJbf465FblQlhp1yER1aV9P46IazVugYV6oCr2Ubj3 z6Lrc81t13sylIHKzc8Ldz7WbJnWi6/RK2FY/UtYofQ9LyrpnY5YA61s0sZS/T+PETED qYQSI5F/ULDBb5MAaKGAEQ+oBW8TX1ZTGi7zwG7UXwnw+jiQLyi5ohz0jjN0l+6G4tdH fBMcSdVfqxBZscd5Nbz8KpXB3AFcmzwPmac2FfrzsdfPWOimh52HujPk+Bt1nVou8mN1 24e9JQWmnAaZ4tCS8I8MRVi7SEDqvbSinnvbg/mcOlfxCO/S1i+tKflvWnBIGrKqu9Em Z2PA== X-Gm-Message-State: AOUpUlF0w3sxbYdoyTvyxzwavqFZJFleAKvYY1uEzwVSSAu0APCkXixG j0IE7iE9duhD76f7l7F5f16OHTc58jN7OPGksuS2tYV8 X-Google-Smtp-Source: AAOMgpdPgB0kcW3a+AIpQMti5KAvQ08W6joEStKNInGPfe+ibwywYNqwL3WGQl74xKekvSqs8TVPbQxNlUsqF/si08I= X-Received: by 2002:a2e:9d0e:: with SMTP id t14-v6mr2554262lji.112.1531864051755; Tue, 17 Jul 2018 14:47:31 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::22a X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14356 At global scope this works as expected: $ declare -n ref=var; declare -a ref=(X); declare -p ref var declare -n ref="var" declare -a var=([0]="X") But in a function, we end up with the nameref variable having both the `a' and `n' attributes and nothing in the target: $ f() { declare -n ref=var; declare ref=(X); declare -p ref var; }; f declare -an ref=([0]="X") -bash: declare: var: not found And a slight modification ends up modifying a global variable instead: $ f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref var; }; f; declare -p ref var declare -an ref=() -bash: declare: var: not found declare -a ref=([0]="X") -bash: declare: var: not found