From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11920 invoked by alias); 23 May 2011 15:52:29 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 29350 Received: (qmail 8776 invoked from network); 23 May 2011 15:52:18 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.3.1 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.214.43 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:message-id:x-mailer :in-reply-to:references; bh=o1j47XzZEHDe5n711z6Dm7LvVRcwRlng001x/0a9b5Q=; b=d6IlkPufJIPMsZc6YiewYSrDNz4HS2/4E8l9obH8V4FR/4MKP8nwFAUaaKjiqcaM78 v5/9qjkf2jj4upCGUa+ucDrXyxX9a7jV6wGxVF881W3nbNQnKQGYFSSzvwHqDTZDtIh9 HnhjJWG9j1Num6GZOEbd039N8mIkk6+V5l9sA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; b=CSkn3xv5JOOD4CKTabTny0BhipXqKWR7T7LryPOT46YQeKKXQon0+MaLLmVnvGojzD JWBzzqbRbBsxOzc7IrEiqVWZQUIejpYoR79Srga3Urv+PfV05UGRPdGiHU1v9aLHiVn9 A0zT74bH94IGlslbGvX7bKzWaBbBUNKBN8258= From: Mikael Magnusson To: zsh-workers@zsh.org Subject: Re: Test failure with negative substring offsets Date: Mon, 23 May 2011 17:52:03 +0200 Message-Id: <1306165923-21449-1-git-send-email-mikachu@gmail.com> X-Mailer: git-send-email 1.7.4-rc1 In-Reply-To: References: Does this make it work? (and if so, why? :) --- Src/subst.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Src/subst.c b/Src/subst.c index 5628c11..e4cd061 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -2888,9 +2888,9 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub) if (offset_hack_argzero) alen++; if (length_set) { - if (length < 0) + if (length < (zlong)0) length += alen - offset; - if (length < 0) { + if (length < (zlong)0) { zerr("substring expression: %d < %d", length + offset, offset); return NULL; @@ -2927,20 +2927,20 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub) } given_offset = offset; MB_METACHARINIT(); - if (length_set && length < 0) + if (length_set && length < (zlong)0) length -= offset; for (sptr = val; *sptr && offset; ) { sptr += MB_METACHARLEN(sptr); offset--; } if (length_set) { - if (length < 0) { + if (length < (zlong)0) { MB_METACHARINIT(); for (eptr = val; *eptr; ) { eptr += MB_METACHARLEN(eptr); length++; } - if (length < 0) { + if (length < (zlong)0) { zerr("substring expression: %d < %d", length + given_offset, given_offset); return NULL; --