From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6014 invoked by alias); 26 Feb 2015 16:52:47 -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: 34635 Received: (qmail 2896 invoked from network); 26 Feb 2015 16:52:45 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version:content-type; bh=ffVii3oj7zLqZof9LmUzePiynWuQpHgxEgHLVvIjVl8=; b=UrqKBl53xLZPf249sk+pZqu/1r1iq7/sna78e8g0fcGT5y920XNfzC4CIXfeT5RgGm 2K0kSmiA5u4RGT8ZxgwrF5hmUNROTcNPFbGiGqaLyZoGF5ixDG+AkGjiGHuMEKg3PY1l BxOG4GRYj1vuAMdo3ddOqpLLGckDu362ENqySAv1dQ4NUyq+MAiMXMbNSUmRzY5lJl3E mBLGg4Cncb1CEQ4glkYG8xy10I31kxccJCNaQJ+swqR/vfONi0FosN2JKDdr47ugN+P6 nvWDE4QesKUKXGJkbLv6XYoqD5bqJWmEf5Uww8dHP81h5ycKsyRLkgPrwP/K7YhQqYZu AfRA== X-Gm-Message-State: ALoCoQkq1Rlq/4WnBzWTPvQ6k0cR76YE83NlXssk5EmX6bcxKK45+53DRCOi7w1EW1X6NS+UlcNp X-Received: by 10.182.247.99 with SMTP id yd3mr6868029obc.24.1424969562353; Thu, 26 Feb 2015 08:52:42 -0800 (PST) From: Bart Schaefer Message-Id: <150226085238.ZM6868@torch.brasslantern.com> Date: Thu, 26 Feb 2015 08:52:38 -0800 In-Reply-To: Comments: In reply to Bart Schaefer "Re: extendedglob recursion (/)#" (Feb 25, 8:56pm) References: <54EE6DFF.7010901@gmx.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: Zsh hackers list Subject: Re: extendedglob recursion (/)# MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Feb 25, 8:56pm, Bart Schaefer wrote: } } + /* special case (/)# to avoid infinite recursion */ } + l1->closure = (p1->patmlen > 0) ? 1 + pdflag : 0; Sorry, that's not correct. patmlen can be zero in cases other than (/). diff --git a/Src/glob.c b/Src/glob.c index 82f8d62..33facde 100644 --- a/Src/glob.c +++ b/Src/glob.c @@ -708,7 +708,8 @@ parsecomplist(char *instr) } l1 = (Complist) zhalloc(sizeof *l1); l1->pat = p1; - l1->closure = 1 + pdflag; + /* special case (/)# to avoid infinite recursion */ + l1->closure = (*((char *)p1 + p1->startoff)) ? 1 + pdflag : 0; l1->follow = 0; l1->next = parsecomplist(instr); return (l1->pat) ? l1 : NULL;