From: Oliver Kiddle <opk@zsh.org>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh workers <zsh-workers@zsh.org>
Subject: Re: [PATCH 1/3]: Add named references
Date: Thu, 09 Feb 2023 03:01:00 +0100 [thread overview]
Message-ID: <25878-1675908060.317862@x_tj.49MY.g4Qe> (raw)
In-Reply-To: <12608-1675903622.800470@Xj82.e3y1.svhG>
This isn't a self-reference because the local levels would be different.
And "self reference" in the error message should be hyphenated.
typeset -n ref=var
foo() { typeset -n var=ref }
foo
foo:typeset:1: var: invalid self reference
With -g it would be, however.
I wrote:
> On the subject references to array elements, it does seem both powerful and
> dangerous that subscripts are evaluated on reference. The subscript
This is fairly sane:
typeset -n ref1=arr[ref2]
typeset -n ref2=ref1
echo $ref1
zsh: math recursion limit exceeded: ref2
This seems useful:
arr=()
typeset -n ref=arr[1,0]
ref=4
ref=5
Similar:
idx=1
typeset -n ref=arr[idx++]
echo $ref $ref
This is where I worry about security:
arr=( 1 2 3 4)
typeset -n ref='arr[$(echo 4)]'
echo $ref
typeset -p ref # it was only evaluated late thanks to quotes
Maybe the code should have a safer mode for subscript evaluation. This
could be useful but it is asking for trouble.
Also can see this being useful:
str='one two three'
typeset -n ref=str[(w)2]
ref=zwei
We already talked about this error message. But now it is a substring.
export ref
export: ref: can't change type of a named reference
Oliver
next prev parent reply other threads:[~2023-02-09 2:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 2:21 Bart Schaefer
2023-02-08 3:45 ` Oliver Kiddle
2023-02-08 4:59 ` Bart Schaefer
2023-02-08 23:16 ` Bart Schaefer
2023-02-09 0:47 ` Oliver Kiddle
2023-02-09 2:01 ` Oliver Kiddle [this message]
2023-02-09 5:45 ` Bart Schaefer
2023-02-09 4:49 ` Bart Schaefer
2023-02-09 20:49 ` Oliver Kiddle
2023-02-09 23:07 ` Bart Schaefer
2023-02-11 3:04 ` Bart Schaefer
2023-02-11 3:55 ` Bart Schaefer
2023-02-11 5:36 ` Speaking of dangerous referents Bart Schaefer
2023-02-12 8:00 ` Oliver Kiddle
2023-02-12 8:34 ` Bart Schaefer
2023-02-11 7:02 ` [PATCH 1/3]: Add named references Oliver Kiddle
2023-02-11 7:45 ` Bart Schaefer
2023-02-11 23:43 ` Bart Schaefer
2023-02-11 23:45 ` Bart Schaefer
2023-02-12 7:38 ` Oliver Kiddle
2023-02-12 9:02 ` Oliver Kiddle
2023-02-12 18:59 ` Bart Schaefer
2023-02-12 19:45 ` PM_* flags in zsh.h (was Re: [PATCH 1/3]: Add named references) Bart Schaefer
2023-02-12 21:01 ` Oliver Kiddle
2023-02-12 22:54 ` [PATCH 1/3]: Add named references Oliver Kiddle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25878-1675908060.317862@x_tj.49MY.g4Qe \
--to=opk@zsh.org \
--cc=schaefer@brasslantern.com \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).