* Globbing file name match function?
@ 2022-06-05 11:11 Lars Ingebrigtsen
2022-06-05 11:23 ` Eli Zaretskii
2022-06-05 11:39 ` Andreas Schwab
0 siblings, 2 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-05 11:11 UTC (permalink / raw)
To: emacs-devel
I've been poking around for a couple of minutes to see whether we have a
function to list files matching a regexp a la how a shell matches them.
That is:
$ ls ~/src/emacs/*/lisp/abbrev.el
/home/larsi/src/emacs/27.1/lisp/abbrev.el
/home/larsi/src/emacs/bisect/lisp/abbrev.el
/home/larsi/src/emacs/emacs-28/lisp/abbrev.el
/home/larsi/src/emacs/foo/lisp/abbrev.el
...
This is with a glob, but ideally you'd be able to drop in a regexp
anywhere in the file name. Do we have that anywhere in Emacs?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:11 Globbing file name match function? Lars Ingebrigtsen
@ 2022-06-05 11:23 ` Eli Zaretskii
2022-06-05 11:25 ` Lars Ingebrigtsen
2022-06-05 11:39 ` Andreas Schwab
1 sibling, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2022-06-05 11:23 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: emacs-devel
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Sun, 05 Jun 2022 13:11:04 +0200
>
> I've been poking around for a couple of minutes to see whether we have a
> function to list files matching a regexp a la how a shell matches them.
> That is:
>
> $ ls ~/src/emacs/*/lisp/abbrev.el
> /home/larsi/src/emacs/27.1/lisp/abbrev.el
> /home/larsi/src/emacs/bisect/lisp/abbrev.el
> /home/larsi/src/emacs/emacs-28/lisp/abbrev.el
> /home/larsi/src/emacs/foo/lisp/abbrev.el
> ...
>
> This is with a glob, but ideally you'd be able to drop in a regexp
> anywhere in the file name. Do we have that anywhere in Emacs?
ls-lisp.el does. It converts a wildcard to regexp, and then uses
directory-files with MATCH set to the regexp.
Do you mean specifically a wildcard in the middle of a file name,
which stands for matching subdirectories?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:23 ` Eli Zaretskii
@ 2022-06-05 11:25 ` Lars Ingebrigtsen
2022-06-05 11:29 ` Eli Zaretskii
0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-05 11:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> Do you mean specifically a wildcard in the middle of a file name,
> which stands for matching subdirectories?
Yes. The leaf part matching is covered by directory-files well enough.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:25 ` Lars Ingebrigtsen
@ 2022-06-05 11:29 ` Eli Zaretskii
2022-06-05 11:59 ` Lars Ingebrigtsen
0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2022-06-05 11:29 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: emacs-devel
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: emacs-devel@gnu.org
> Date: Sun, 05 Jun 2022 13:25:33 +0200
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Do you mean specifically a wildcard in the middle of a file name,
> > which stands for matching subdirectories?
>
> Yes. The leaf part matching is covered by directory-files well enough.
But what glob does is recursively find each wildcard, expand it, then
go deeper and repeat. So it should be possible to do the same based
on directory-files, I think?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:11 Globbing file name match function? Lars Ingebrigtsen
2022-06-05 11:23 ` Eli Zaretskii
@ 2022-06-05 11:39 ` Andreas Schwab
1 sibling, 0 replies; 10+ messages in thread
From: Andreas Schwab @ 2022-06-05 11:39 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: emacs-devel
On Jun 05 2022, Lars Ingebrigtsen wrote:
> I've been poking around for a couple of minutes to see whether we have a
> function to list files matching a regexp a la how a shell matches them.
> That is:
>
> $ ls ~/src/emacs/*/lisp/abbrev.el
> /home/larsi/src/emacs/27.1/lisp/abbrev.el
> /home/larsi/src/emacs/bisect/lisp/abbrev.el
> /home/larsi/src/emacs/emacs-28/lisp/abbrev.el
> /home/larsi/src/emacs/foo/lisp/abbrev.el
> ...
>
> This is with a glob, but ideally you'd be able to drop in a regexp
> anywhere in the file name. Do we have that anywhere in Emacs?
There is file-expand-wildcards.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:29 ` Eli Zaretskii
@ 2022-06-05 11:59 ` Lars Ingebrigtsen
2022-06-05 13:29 ` Stefan Monnier
2022-06-05 20:34 ` Philip Kaludercic
0 siblings, 2 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-05 11:59 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> But what glob does is recursively find each wildcard, expand it, then
> go deeper and repeat. So it should be possible to do the same based
> on directory-files, I think?
Yes, and I wondered if we had that already.
Andreas Schwab <schwab@linux-m68k.org> writes:
> There is file-expand-wildcards.
Ah, thanks, just what I was looking for. (Not under the name I was
looking for, though.) Hm... it takes globs, but it looks trivial to
expand to regexps.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:59 ` Lars Ingebrigtsen
@ 2022-06-05 13:29 ` Stefan Monnier
2022-06-05 20:34 ` Philip Kaludercic
1 sibling, 0 replies; 10+ messages in thread
From: Stefan Monnier @ 2022-06-05 13:29 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel
>> There is file-expand-wildcards.
> Ah, thanks, just what I was looking for. (Not under the name I was
> looking for, though.)
FWIW it recently took me a while to find it as well (I first looked for
something with "glob" in its name). Luckily I knew we had such
a function (and I remembered it's used by `find-file`).
Stefan
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 11:59 ` Lars Ingebrigtsen
2022-06-05 13:29 ` Stefan Monnier
@ 2022-06-05 20:34 ` Philip Kaludercic
2022-06-05 20:42 ` Lars Ingebrigtsen
1 sibling, 1 reply; 10+ messages in thread
From: Philip Kaludercic @ 2022-06-05 20:34 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Eli Zaretskii, emacs-devel
Lars Ingebrigtsen <larsi@gnus.org> writes:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>> But what glob does is recursively find each wildcard, expand it, then
>> go deeper and repeat. So it should be possible to do the same based
>> on directory-files, I think?
>
> Yes, and I wondered if we had that already.
>
> Andreas Schwab <schwab@linux-m68k.org> writes:
>
>> There is file-expand-wildcards.
>
> Ah, thanks, just what I was looking for. (Not under the name I was
> looking for, though.) Hm... it takes globs, but it looks trivial to
> expand to regexps.
Should an alias be added with "glob" in the name, something like
"glob-expand" or just "glob", like the libc function?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 20:34 ` Philip Kaludercic
@ 2022-06-05 20:42 ` Lars Ingebrigtsen
2022-06-06 8:02 ` Andreas Schwab
0 siblings, 1 reply; 10+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-05 20:42 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: Eli Zaretskii, emacs-devel
Philip Kaludercic <philipk@posteo.net> writes:
> Should an alias be added with "glob" in the name, something like
> "glob-expand" or just "glob", like the libc function?
If we're bikeshedding, I think both "expand" and "wildcard" are
misleading here. 😀 I think of "$HOME" -> "/home/larsi" as an
expansion. What this function does is search for files that match a
pattern.
So `file-find-<something>' would be natural, but we call visiting a file
`find-file', so that's confusing, too.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Globbing file name match function?
2022-06-05 20:42 ` Lars Ingebrigtsen
@ 2022-06-06 8:02 ` Andreas Schwab
0 siblings, 0 replies; 10+ messages in thread
From: Andreas Schwab @ 2022-06-06 8:02 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: Philip Kaludercic, Eli Zaretskii, emacs-devel
On Jun 05 2022, Lars Ingebrigtsen wrote:
> If we're bikeshedding, I think both "expand" and "wildcard" are
> misleading here.
The standard term is filename expansion.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-06-06 8:02 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-05 11:11 Globbing file name match function? Lars Ingebrigtsen
2022-06-05 11:23 ` Eli Zaretskii
2022-06-05 11:25 ` Lars Ingebrigtsen
2022-06-05 11:29 ` Eli Zaretskii
2022-06-05 11:59 ` Lars Ingebrigtsen
2022-06-05 13:29 ` Stefan Monnier
2022-06-05 20:34 ` Philip Kaludercic
2022-06-05 20:42 ` Lars Ingebrigtsen
2022-06-06 8:02 ` Andreas Schwab
2022-06-05 11:39 ` Andreas Schwab
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).