From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Hrvoje Niksic Newsgroups: gmane.emacs.devel Subject: Re: locate-file in Emacs Date: Thu, 18 Apr 2002 17:11:32 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: References: <200204170928.g3H9SVb27019@rum.cs.yale.edu> <200204171001.g3HA1hh27230@rum.cs.yale.edu> <200204181408.g3IE83b02114@rum.cs.yale.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1019142939 30036 127.0.0.1 (18 Apr 2002 15:15:39 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 18 Apr 2002 15:15:39 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 16yDdK-0007oL-00 for ; Thu, 18 Apr 2002 17:15:38 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 16yDwY-0003hK-00 for ; Thu, 18 Apr 2002 17:35:30 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16yDaJ-0004CW-00; Thu, 18 Apr 2002 11:12:31 -0400 Original-Received: from dragon.arsdigita.de ([212.84.246.66] helo=florida.arsdigita.de) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16yDZO-00045u-00 for ; Thu, 18 Apr 2002 11:11:34 -0400 Original-Received: from hniksic by florida.arsdigita.de with local (Exim 3.35 #1 (Debian)) id 16yDZM-0006gx-00; Thu, 18 Apr 2002 17:11:32 +0200 Original-To: "Stefan Monnier" X-Attribution: Hrvoje X-Face: &{dT~)Pu6V<0y?>3p$;@vh\`C7xB~A0T-J%Og)J,@-1%q6Q+, gs<-9M#&`I8cJp2b1{vPE|~+JE+gx;a7%BG{}nY^ehK1"q#rG O,Rn1A_Cy%t]V=Brv7h ("Stefan Monnier"'s message of "Thu, 18 Apr 2002 10:08:03 -0400") Original-Lines: 40 User-Agent: Gnus/5.090006 (Oort Gnus v0.06) XEmacs/21.4 (Common Lisp, i686-pc-linux) Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.9 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:2732 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:2732 "Stefan Monnier" writes: >> That would break backward compatibility, which is fairly important in > > I fail to see why: > > (defun locate-file (f p s predicate) > (cond > ((memq predicate '(executable writable ...)) ...) That's fine; I thought you wanted to disallow old-style MODE in favor of PREDICATE which you found easier to implement. > you should be able to keep backward compatibility just fine. > The qusetion is whether or not you find the `predicate' interface > preferable. I find this "mixing" of interfaces far from elegant, but I'll agree that it's flexible. If that's your price of keeping a unified interface, I'll accept. But I'd prefer to just keep MODE. > PS: a grep through XEmacs packages seems to indicate that the MODE > argument is rarely used and that the few times it's used it's > only to check executablility but uses the integer 1 instead of > the `executable' symbol. That's the old interface, which XEmacs still supports. In it the MODE was a number equivalent to what access() accepts as the second arg, and the SUFFIXES were one colon-separated string. But I don't require GNU Emacs to support this old interface. > So assuming that the core code is updated to the new interface, > I'm not even sure if `executable', `writable' and friends needs > to be supported Then you don't care about the compatibility with the existing XEmacs interface. I can understand that, because you don't have to support its uses; but I do. If it means something to you as a "proof", I've used it in my programs.