From: Peter Stephenson <p.w.stephenson@ntlworld.com>
To: "Zsh Hackers' List" <zsh-workers@zsh.org>
Subject: Re: PATCH: array slice
Date: Sat, 27 Jun 2015 20:42:02 +0100 [thread overview]
Message-ID: <20150627204202.4623aa2e@ntlworld.com> (raw)
In-Reply-To: <150626160745.ZM2566@torch.brasslantern.com>
On Fri, 26 Jun 2015 16:07:45 -0700
Bart Schaefer <schaefer@brasslantern.com> wrote:
> This error message looks odd:
>
> torch% typeset y[2,4]=(x)
> typeset: y[2,4]: can't create local array elements
>
> I guess that isn't new, but to refer to "local" at top-level prompt is
> funny. "(on & PM_LOCAL)" is evidently true even though the typeset is
> not within function scope. Amusingly it works to simply force the
> variable to be global:
>
> torch% typeset -g y[2,4]=(x)
> torch% typeset -p y
> typeset -a y
> y=('' x)
>
> And an array is always created for this, even without the parens:
>
> torch% typeset -g z[2,4]=y
> torch% typeset -p z
> typeset -a z
> z=('' y)
OK, so it does work if it *would* create a local if it could but is
*actually* going to create a global in practice. This probably isn't
all that useful in practice --- in the second case, you haven't even
told it you want an array.
It would take more work to fix this so it does something sensible if the
variable would be local --- we get into a mess later, which is what I
think the error is for. I don't quite understand why but I've
lost interest / the will to live; there are too many combinations.
pws
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -2325,7 +2325,7 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func),
zerrnam(cname,
"%s: can't create readonly array elements", pname);
return NULL;
- } else if (on & PM_LOCAL) {
+ } else if ((on & PM_LOCAL) && locallevel) {
*subscript = 0;
pm = (Param) (paramtab == realparamtab ?
gethashnode2(paramtab, pname) :
next prev parent reply other threads:[~2015-06-27 19:42 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5578996E.3080700@thequod.de>
[not found] ` <150610191427.ZM30841@torch.brasslantern.com>
[not found] ` <5579C247.1060800@thequod.de>
[not found] ` <150611183639.ZM32247@torch.brasslantern.com>
[not found] ` <20150612094237.338f79d5@pwslap01u.europe.root.pri>
2015-06-19 11:39 ` Typeset with array Peter Stephenson
2015-06-19 14:06 ` Peter Stephenson
2015-06-19 18:54 ` Bart Schaefer
2015-06-19 20:16 ` Peter Stephenson
2015-06-19 21:11 ` Eric Cook
2015-06-19 16:09 ` Bart Schaefer
2015-06-19 20:32 ` Peter Stephenson
2015-06-20 3:50 ` Bart Schaefer
2015-06-20 17:05 ` Peter Stephenson
2015-06-19 17:36 ` Oliver Kiddle
2015-06-19 18:40 ` Bart Schaefer
2015-06-25 9:29 ` Peter Stephenson
2015-06-25 15:16 ` Bart Schaefer
2015-06-25 15:39 ` Peter Stephenson
2015-06-25 16:08 ` Bart Schaefer
2015-06-25 16:34 ` Peter Stephenson
2015-06-26 13:51 ` PATCH: array slice Peter Stephenson
2015-06-26 23:07 ` Bart Schaefer
2015-06-27 19:42 ` Peter Stephenson [this message]
2015-06-27 20:09 ` Bart Schaefer
2015-06-26 16:46 ` PATCH: typeset completion Peter Stephenson
2015-06-26 19:14 ` Typeset with array Oliver Kiddle
2015-06-27 16:33 ` Peter Stephenson
2015-06-21 20:05 ` Peter Stephenson
2015-06-21 20:38 ` Peter Stephenson
2015-06-23 16:47 ` Peter Stephenson
2015-06-23 17:52 ` Mikael Magnusson
2015-06-23 20:17 ` Bart Schaefer
2015-06-23 20:21 ` Peter Stephenson
2015-06-23 20:24 ` Mikael Magnusson
2015-06-24 1:35 ` typeset -p with assoc array (was Re: Typeset with array) Bart Schaefer
2015-06-24 6:03 ` Bart Schaefer
2015-06-23 20:25 ` Typeset with array Bart Schaefer
2015-06-24 9:14 ` Peter Stephenson
2015-06-24 9:29 ` Peter Stephenson
2015-06-24 10:35 ` Roman Neuhauser
2015-06-24 13:00 ` Mikael Magnusson
2015-06-24 13:20 ` Peter Stephenson
2015-06-24 15:03 ` Bart Schaefer
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=20150627204202.4623aa2e@ntlworld.com \
--to=p.w.stephenson@ntlworld.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).