diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2007-07-25 09:26:51 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2007-07-25 09:26:51 +0000 |
commit | 4fab17e62aaa2c0628721df45609e9ba6b17a6bc (patch) | |
tree | c809a2b17ed4df33907402bf029f3ee37c93d540 /Src/params.c | |
parent | 9084df4dc365412c6c44b0c12f53405859adcbf7 (diff) | |
download | zsh-4fab17e62aaa2c0628721df45609e9ba6b17a6bc.tar.gz zsh-4fab17e62aaa2c0628721df45609e9ba6b17a6bc.tar.xz zsh-4fab17e62aaa2c0628721df45609e9ba6b17a6bc.zip |
23696: x=x; x[-10]=y did bad things
Diffstat (limited to 'Src/params.c')
-rw-r--r-- | Src/params.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c index 46da87580..a962f850c 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2076,8 +2076,11 @@ setstrvalue(Value v, char *val) } if (v->start > zlen) v->start = zlen; - if (v->end < 0) + if (v->end < 0) { v->end += zlen + 1; + if (v->end < 0) + v->end = 0; + } else if (v->end > zlen) v->end = zlen; x = (char *) zalloc(v->start + strlen(val) + zlen - v->end + 1); |