Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: ksharrays and assoc array assignments (was Re: Files modified after a given date)
- X-seq: zsh-users 2529
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: Gabor <gabor@xxxxxxxxxx>, zsh-users@xxxxxxxxxxxxxx
- Subject: PATCH: ksharrays and assoc array assignments (was Re: Files modified after a given date)
- Date: Sat, 28 Aug 1999 05:00:03 +0000
- In-reply-to: <19990827194419.A7511@xxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxxxxxx; run by ezmlm
- References: <199908230809.KAA02317@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <19990827175122.A2818@xxxxxxxxxx> <990827224347.ZM28594@xxxxxxxxxxxxxxxxxxxxxxx> <19990827194419.A7511@xxxxxxxxxx>
On Aug 27, 7:44pm, Gabor wrote:
} Subject: Re: Files modified after a given date
}
} On Fri, Aug 27, 1999 at 10:43:47PM +0000, Bart Schaefer wrote:
} # On Aug 27, 5:51pm, Gabor wrote:
} # > Subject: Re: Files modified after a given date
} # > === gabor $ builtin stat -H foo .zshrc
} # > zsh: attempt to set slice of associative array
} #
} Well, I figured it out. I believe this to be a bug, though you
} decide. I always set ksharrays since I like 0 based indexing and use
} ksh for scripting at work. With ksharrays unset, it works.
Aha. Yes, that's a bug. You can see it more easily with
zsh% setopt ksharrays
zsh% : ${(AA)=foo:=a b c d}
zsh: attempt to set slice of associative array
Here'a patch.
Index: Src/params.c
===================================================================
@@ -1697,9 +1697,14 @@
v = NULL;
}
}
- if (!v)
- if (!(v = getvalue(&t, 1)))
- return NULL;
+ if (!v) {
+ int k = opts[KSHARRAYS]; /* Remember the value of KSHARRAYS */
+ opts[KSHARRAYS] = 0; /* and clear it to avoid special- */
+ v = getvalue(&t, 1); /* case of $array --> ${array[0]}. */
+ opts[KSHARRAYS] = k; /* OK because we can't assign to a */
+ if (!v) /* slice of an association anyway, */
+ return NULL; /* so ANY subscript will be wrong. */
+ }
setarrvalue(v, val);
return v->pm;
}
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Messages sorted by:
Reverse Date,
Date,
Thread,
Author