diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2005-09-06 15:28:40 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2005-09-06 15:28:40 +0000 |
commit | 93b6d4e46e86051e97fdc5e365d3e2446a94ace5 (patch) | |
tree | 5555947f78ead8c530b03974023d03e4467439d5 /Src/params.c | |
parent | 6d2483bb101af1749257d824c3b0a6bd5907b622 (diff) | |
download | zsh-93b6d4e46e86051e97fdc5e365d3e2446a94ace5.tar.gz zsh-93b6d4e46e86051e97fdc5e365d3e2446a94ace5.tar.xz zsh-93b6d4e46e86051e97fdc5e365d3e2446a94ace5.zip |
21701: Negative subscripts of scalars before start were broken
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 80647aa28..943bb70f0 100644 --- a/Src/params.c +++ b/Src/params.c @@ -1565,8 +1565,11 @@ getstrvalue(Value v) if (v->start == 0 && v->end == -1) return s; - if (v->start < 0) + if (v->start < 0) { v->start += strlen(s); + if (v->start < 0) + v->start = 0; + } if (v->end < 0) v->end += strlen(s) + 1; s = (v->start > (int)strlen(s)) ? dupstring("") : dupstring(s + v->start); |