From: "Stefan Monnier" <monnier+gnu/emacs@RUM.cs.yale.edu>
Cc: "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu>,
emacs-devel@gnu.org
Subject: Re: locate-file in Emacs
Date: Thu, 18 Apr 2002 11:27:15 -0400 [thread overview]
Message-ID: <200204181527.g3IFRFC02843@rum.cs.yale.edu> (raw)
In-Reply-To: sxs1yddavob.fsf@florida.arsdigita.de
> >> 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.
No, I'm quite aware of the fact that breaking backward compatibility
is not done so lightly ;-).
> > you should be able to keep backward compatibility just fine.
> > The question 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.
I'd of course document the MODE-style arguments as obsolete, so
that the inelegance is "temporary".
> > 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.
That's what I figured.
> > 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.
I have no doubt that it's been used, so do you happen to know if it
has been used in packages that are in active use ?
Based on the information here, I think I'll go ahead and implement
the functionality on top of `openp' with just a `predicate' argument
and without backward compatibility for `mode'.
But I have one question left: should the `file-directory-p' check be enforced
independently from `predicate' ?
I.e. can (locate-file f p s 'file-readable-p) return a directory ?
"Yes" is better since it allows the caller to choose whether directories
are considered or not but "no" is better because it allows
(locate-file file path suffixes 'file-executable-p) to behave like
your current (locate-file file path suffixes 'executable).
Or does the current XEmacs code always consider directories anyway ?
Stefan
next prev parent reply other threads:[~2002-04-18 15:27 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-17 5:05 locate-file in Emacs Hrvoje Niksic
2002-04-17 5:47 ` Eli Zaretskii
2002-04-17 8:53 ` Hrvoje Niksic
2002-04-17 9:28 ` Stefan Monnier
2002-04-17 9:47 ` Hrvoje Niksic
2002-04-17 10:01 ` Stefan Monnier
2002-04-18 13:16 ` Hrvoje Niksic
2002-04-18 13:54 ` Miles Bader
2002-04-18 14:09 ` Hrvoje Niksic
2002-04-18 14:25 ` Miles Bader
2002-04-18 14:08 ` Stefan Monnier
2002-04-18 15:11 ` Hrvoje Niksic
2002-04-18 15:27 ` Stefan Monnier [this message]
2002-04-18 16:20 ` Hrvoje Niksic
2002-04-18 18:59 ` Stefan Monnier
2002-04-25 12:12 ` Hrvoje Niksic
2002-04-25 22:52 ` Stefan Monnier
2002-05-06 15:58 ` Hrvoje Niksic
[not found] ` <200205061655.g46Gt3K01382@rum.cs.yale.edu>
2002-05-06 19:53 ` Hrvoje Niksic
[not found] ` <200205062052.g46KqwO02482@rum.cs.yale.edu>
2002-05-06 20:59 ` Hrvoje Niksic
2002-05-06 21:12 ` Stefan Monnier
2002-05-06 21:57 ` Hrvoje Niksic
2002-05-07 20:06 ` Richard Stallman
2002-04-18 16:39 ` Eli Zaretskii
2002-04-18 16:24 ` Hrvoje Niksic
2002-04-19 5:25 ` Richard Stallman
2002-04-18 15:31 ` Miles Bader
2002-04-18 16:29 ` Hrvoje Niksic
2002-04-18 16:45 ` Miles Bader
2002-04-18 16:49 ` Hrvoje Niksic
2002-04-18 16:54 ` Miles Bader
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200204181527.g3IFRFC02843@rum.cs.yale.edu \
--to=monnier+gnu/emacs@rum.cs.yale.edu \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.