From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10580 invoked by alias); 9 Nov 2012 12:34:37 -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: 30788 Received: (qmail 27059 invoked from network); 9 Nov 2012 12:34:34 -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=-1.0 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,SPF_HELO_PASS,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.3.2 Received-SPF: pass (ns1.primenet.com.au: SPF record at m.gmane.org designates 80.91.229.3 as permitted sender) X-Injected-Via-Gmane: http://gmane.org/ To: zsh-workers@zsh.org From: Stephane Chazelas Subject: lstat(2) upon e and + globbing qualifiers Date: Fri, 9 Nov 2012 12:12:37 +0000 Message-ID: <20121109121237.GA11082@chaz.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 188-223-3-27.zone14.bethere.co.uk Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Hiya. Adding a "e" or "+" qualifier to a globbing pattern seems to cause zsh to call an unnecessary lstat(2) for each file. No big deal, just potential performance improvement here. There's a side effect though when you have read but not search permission on a directory: $ strace -fe lstat zsh -c 'echo 2/*' 2/bar 2/foo $ strace -fe lstat zsh -c 'echo 2/*(e::)' lstat("2/foo", 0x7fff95492110) = -1 EACCES (Permission denied) lstat("2/bar", 0x7fff95492110) = -1 EACCES (Permission denied) zsh:1: no matches found: 2/*(e::) (reproduced with 5.0 on debian) -- Stephane