* how having the basename of a file or directory
@ 2011-01-31 7:25 Thierry Volpiatto
2011-01-31 8:30 ` Stephen J. Turnbull
0 siblings, 1 reply; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 7:25 UTC (permalink / raw)
To: emacs-devel
Hi all,
i didn't find any function giving the basename of a file or directory.
I use this actually:
(defun basename (fname)
(if (file-directory-p fname)
(let ((dirname (directory-file-name fname)))
(file-relative-name
dirname (file-name-directory dirname)))
(file-name-nondirectory fname)))
Does it exists already something i missed?
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* how having the basename of a file or directory
2011-01-31 7:25 how having the basename of a file or directory Thierry Volpiatto
@ 2011-01-31 8:30 ` Stephen J. Turnbull
2011-01-31 8:59 ` Thierry Volpiatto
0 siblings, 1 reply; 18+ messages in thread
From: Stephen J. Turnbull @ 2011-01-31 8:30 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: emacs-devel
Thierry Volpiatto writes:
> (defun basename (fname)
> (if (file-directory-p fname)
> (let ((dirname (directory-file-name fname)))
> (file-relative-name
> dirname (file-name-directory dirname)))
> (file-name-nondirectory fname)))
(file-name-nondirectory (directory-file-name PATH))
should work (modulo I'm testing in XEmacs, but I can't imagine that we
differ in this respect).
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 8:30 ` Stephen J. Turnbull
@ 2011-01-31 8:59 ` Thierry Volpiatto
2011-01-31 10:28 ` Andreas Schwab
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 8:59 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: emacs-devel
Hi Stephen,
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> Thierry Volpiatto writes:
>
> > (defun basename (fname)
> > (if (file-directory-p fname)
> > (let ((dirname (directory-file-name fname)))
> > (file-relative-name
> > dirname (file-name-directory dirname)))
> > (file-name-nondirectory fname)))
>
> (file-name-nondirectory (directory-file-name PATH))
>
> should work (modulo I'm testing in XEmacs, but I can't imagine that we
> differ in this respect).
Yes thanks, that's work too, but it would be nice to do not have to take
care of that:
(file-name-nondirectory "path/to/a/directory")
should return ==> directory
(file-name-nondirectory "path/to/a/file")
should return ==> file
So modifying `file-name-nondirectory' or creating a basename function
or macro like:
(defun basename (fname)
(if (file-directory-p fname)
(let ((dirname (directory-file-name fname)))
(file-name-nondirectory dirname))
(file-name-nondirectory fname)))
would be nice.
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 8:59 ` Thierry Volpiatto
@ 2011-01-31 10:28 ` Andreas Schwab
2011-01-31 11:03 ` Thierry Volpiatto
2011-01-31 15:29 ` Stefan Monnier
2011-02-01 11:55 ` Stephen J. Turnbull
2 siblings, 1 reply; 18+ messages in thread
From: Andreas Schwab @ 2011-01-31 10:28 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, emacs-devel
Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> (file-name-nondirectory "path/to/a/directory")
> should return ==> directory
It does.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 10:28 ` Andreas Schwab
@ 2011-01-31 11:03 ` Thierry Volpiatto
2011-01-31 12:07 ` Andreas Schwab
0 siblings, 1 reply; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 11:03 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Stephen J. Turnbull, emacs-devel
Andreas Schwab <schwab@linux-m68k.org> writes:
> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> (file-name-nondirectory "path/to/a/directory")
>> should return ==> directory
>
> It does.
Not really.
It does if PATH doesn't end with "/" otherwise no, it's why
(file-name-nondirectory (directory-file-name PATH))
is needed as Stephen said.
You see, it's confusing ;-)
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 11:03 ` Thierry Volpiatto
@ 2011-01-31 12:07 ` Andreas Schwab
2011-01-31 12:19 ` Thierry Volpiatto
0 siblings, 1 reply; 18+ messages in thread
From: Andreas Schwab @ 2011-01-31 12:07 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, emacs-devel
Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> Andreas Schwab <schwab@linux-m68k.org> writes:
>
>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>
>>> (file-name-nondirectory "path/to/a/directory")
>>> should return ==> directory
>>
>> It does.
> Not really.
> It does if PATH doesn't end with "/" otherwise no, it's why
file-name-nondirectory doesn't care whether the argument is a directory
or not, it looks only at the contents of the string.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 12:07 ` Andreas Schwab
@ 2011-01-31 12:19 ` Thierry Volpiatto
2011-01-31 12:53 ` Andreas Schwab
0 siblings, 1 reply; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 12:19 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Stephen J. Turnbull, emacs-devel
Andreas Schwab <schwab@linux-m68k.org> writes:
> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>
>> Andreas Schwab <schwab@linux-m68k.org> writes:
>>
>>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>>
>>>> (file-name-nondirectory "path/to/a/directory")
>>>> should return ==> directory
>>>
>>> It does.
>> Not really.
>> It does if PATH doesn't end with "/" otherwise no, it's why
>
> file-name-nondirectory doesn't care whether the argument is a directory
> or not, it looks only at the contents of the string.
Yes, i understood that, i am just pointing out that we should not have
to take care if string end with / or not, like shell command basename.
basename /home/thierry/riri
riri
basename /home/thierry/riri/
riri
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 12:19 ` Thierry Volpiatto
@ 2011-01-31 12:53 ` Andreas Schwab
0 siblings, 0 replies; 18+ messages in thread
From: Andreas Schwab @ 2011-01-31 12:53 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, emacs-devel
Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> Andreas Schwab <schwab@linux-m68k.org> writes:
>
>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>
>>> Andreas Schwab <schwab@linux-m68k.org> writes:
>>>
>>>> Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>>>>
>>>>> (file-name-nondirectory "path/to/a/directory")
>>>>> should return ==> directory
>>>>
>>>> It does.
>>> Not really.
>>> It does if PATH doesn't end with "/" otherwise no, it's why
>>
>> file-name-nondirectory doesn't care whether the argument is a directory
>> or not, it looks only at the contents of the string.
> Yes, i understood that, i am just pointing out that we should not have
> to take care if string end with / or not, like shell command basename.
file-name-nondirectory is not basename. The empty string is a valid
file name in Emacs.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 8:59 ` Thierry Volpiatto
2011-01-31 10:28 ` Andreas Schwab
@ 2011-01-31 15:29 ` Stefan Monnier
2011-01-31 16:30 ` Thierry Volpiatto
2011-02-01 11:55 ` Stephen J. Turnbull
2 siblings, 1 reply; 18+ messages in thread
From: Stefan Monnier @ 2011-01-31 15:29 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, emacs-devel
> Yes thanks, that's work too, but it would be nice to do not have to take
> care of that:
> (file-name-nondirectory "path/to/a/directory")
> should return ==> directory
It does.
> (file-name-nondirectory "path/to/a/file")
> should return ==> file
It does.
> So modifying `file-name-nondirectory' or creating a basename function
> or macro like:
> (defun basename (fname)
> (if (file-directory-p fname)
> (let ((dirname (directory-file-name fname)))
> (file-name-nondirectory dirname))
> (file-name-nondirectory fname)))
That won't work on (basename "/non/existing/thing/").
You really want to use (file-name-nondirectory (directory-file-name fname))
Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 15:29 ` Stefan Monnier
@ 2011-01-31 16:30 ` Thierry Volpiatto
2011-01-31 16:43 ` Karl Fogel
2011-01-31 19:53 ` Stefan Monnier
0 siblings, 2 replies; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 16:30 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Stephen J. Turnbull, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Yes thanks, that's work too, but it would be nice to do not have to take
>> care of that:
>
>> (file-name-nondirectory "path/to/a/directory")
>> should return ==> directory
>
> It does.
>
>> (file-name-nondirectory "path/to/a/file")
>> should return ==> file
>
> It does.
>
>> So modifying `file-name-nondirectory' or creating a basename function
>> or macro like:
>
>> (defun basename (fname)
>> (if (file-directory-p fname)
>> (let ((dirname (directory-file-name fname)))
>> (file-name-nondirectory dirname))
>> (file-name-nondirectory fname)))
>
> That won't work on (basename "/non/existing/thing/").
> You really want to use (file-name-nondirectory (directory-file-name fname))
Indeed, yes, thanks Stefan, but something like
(defun basename (fname)
(if (or (file-directory-p fname)
(string-match "/$" fname))
(let ((dirname (directory-file-name fname)))
(file-name-nondirectory dirname))
(file-name-nondirectory fname)))
would work and be useful.
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 16:30 ` Thierry Volpiatto
@ 2011-01-31 16:43 ` Karl Fogel
2011-01-31 19:53 ` Stefan Monnier
1 sibling, 0 replies; 18+ messages in thread
From: Karl Fogel @ 2011-01-31 16:43 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, Stefan Monnier, emacs-devel
I think Thierry's point is that it would be useful for Emacs to have a
function called "basename", that does what functions of similar name do
in other programming language standard libraries and in the shell.
FWIW, I agree. Many times I've done an Apropos search on "basename",
only to remember that there's some complicated recipe involving
`file-name-nondirectory' (which I then go look up).
Now, what the exact behavior of `basename' should be is open to debate.
Perhaps it should be:
(defun basename (path)
(file-name-nondirectory (directory-file-name path)))
Or perhaps it should be:
(defun basename (path)
(thing-thierry-recently-defined))
Or perhaps something else.
Can we treat the two questions separately, though? If we agree that
having something called `basename' in Emacs Lisp would be good, then we
can probably quickly agree on exactly how it should behave, so let's
start with the first question: should we have `basename'?
-Karl
Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
>Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>> Yes thanks, that's work too, but it would be nice to do not have to take
>>> care of that:
>>
>>> (file-name-nondirectory "path/to/a/directory")
>>> should return ==> directory
>>
>> It does.
>>
>>> (file-name-nondirectory "path/to/a/file")
>>> should return ==> file
>>
>> It does.
>>
>>> So modifying `file-name-nondirectory' or creating a basename function
>>> or macro like:
>>
>>> (defun basename (fname)
>>> (if (file-directory-p fname)
>>> (let ((dirname (directory-file-name fname)))
>>> (file-name-nondirectory dirname))
>>> (file-name-nondirectory fname)))
>>
>> That won't work on (basename "/non/existing/thing/").
>> You really want to use (file-name-nondirectory (directory-file-name fname))
>Indeed, yes, thanks Stefan, but something like
>
>
>(defun basename (fname)
> (if (or (file-directory-p fname)
> (string-match "/$" fname))
> (let ((dirname (directory-file-name fname)))
> (file-name-nondirectory dirname))
> (file-name-nondirectory fname)))
>
>would work and be useful.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 16:30 ` Thierry Volpiatto
2011-01-31 16:43 ` Karl Fogel
@ 2011-01-31 19:53 ` Stefan Monnier
2011-01-31 20:39 ` Thierry Volpiatto
1 sibling, 1 reply; 18+ messages in thread
From: Stefan Monnier @ 2011-01-31 19:53 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: Stephen J. Turnbull, emacs-devel
> (defun basename (fname)
> (if (or (file-directory-p fname)
> (string-match "/$" fname))
> (let ((dirname (directory-file-name fname)))
> (file-name-nondirectory dirname))
> (file-name-nondirectory fname)))
If, as Karl suggests, your point is that you want a `basename' function,
then maybe we could add such a function (I'm really not convinced it's
worth the trouble. Better would be to add a paragraph in the manual,
I think), but I still insist that the above definition is wrong.
It should be
(defun file-basename (file)
(file-name-nondirectory (directory-file-name file)))
-- Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 19:53 ` Stefan Monnier
@ 2011-01-31 20:39 ` Thierry Volpiatto
0 siblings, 0 replies; 18+ messages in thread
From: Thierry Volpiatto @ 2011-01-31 20:39 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Stephen J. Turnbull, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> (defun basename (fname)
>> (if (or (file-directory-p fname)
>> (string-match "/$" fname))
>> (let ((dirname (directory-file-name fname)))
>> (file-name-nondirectory dirname))
>> (file-name-nondirectory fname)))
>
> If, as Karl suggests, your point is that you want a `basename' function,
> then maybe we could add such a function (I'm really not convinced it's
> worth the trouble. Better would be to add a paragraph in the manual,
> I think), but I still insist that the above definition is wrong.
The above definition is not wrong, but it have unneeded code.
However the unneeded code explain clearly what happen.
> It should be
>
> (defun file-basename (file)
> (file-name-nondirectory (directory-file-name file)))
Yes.
Because the name of this function (i.e directory-file-name), i didn't think
to call it on a filename, but it return the filename yes.
Maybe confusion with file-name-directory.
(always need to look manual when using all these file-name-*,
directory-file-* etc... functions)
Adding a basename function is just a first step to simplify all that.
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-01-31 8:59 ` Thierry Volpiatto
2011-01-31 10:28 ` Andreas Schwab
2011-01-31 15:29 ` Stefan Monnier
@ 2011-02-01 11:55 ` Stephen J. Turnbull
2011-02-01 15:37 ` Karl Fogel
2 siblings, 1 reply; 18+ messages in thread
From: Stephen J. Turnbull @ 2011-02-01 11:55 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: emacs-devel
Thierry Volpiatto writes:
> (file-name-nondirectory "path/to/a/directory")
> should return ==> directory
> (file-name-nondirectory "path/to/a/file")
> should return ==> file
They do.
(file-name-nondirectory "path/to/a/directory/") => ""
is the problem.
> So modifying `file-name-nondirectory'
This is probably out of the question. It should be the case that
(equal fname (concat (file-name-directory fname)
(file-name-nondirectory fname))))
> or creating a basename function
Un-Pythonic. But then, this isn't Python, so I guess it's OK. ;-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-02-01 11:55 ` Stephen J. Turnbull
@ 2011-02-01 15:37 ` Karl Fogel
2011-02-01 16:26 ` Stephen J. Turnbull
0 siblings, 1 reply; 18+ messages in thread
From: Karl Fogel @ 2011-02-01 15:37 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: emacs-devel, Thierry Volpiatto
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> > or creating a basename function
>
>Un-Pythonic. But then, this isn't Python, so I guess it's OK. ;-)
$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
>>> import os.path
>>> os.path.basename("/home/kfogel/README")
'README'
>>> quit()
$
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-02-01 15:37 ` Karl Fogel
@ 2011-02-01 16:26 ` Stephen J. Turnbull
2011-02-01 16:52 ` Karl Fogel
0 siblings, 1 reply; 18+ messages in thread
From: Stephen J. Turnbull @ 2011-02-01 16:26 UTC (permalink / raw)
To: Karl Fogel; +Cc: emacs-devel, Thierry Volpiatto
Karl Fogel writes:
> "Stephen J. Turnbull" <stephen@xemacs.org> writes:
> > > or creating a basename function
> >
> >Un-Pythonic. But then, this isn't Python, so I guess it's OK. ;-)
>
> $ python
> Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
> >>> import os.path
> >>> os.path.basename("/home/kfogel/README")
> 'README'
> >>> quit()
> $
You know what I mean. "Not every three-line function needs to be a
built-in." AFAIK Python doesn't have an equivalent to
file-name-directory; you need to write that yourself.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-02-01 16:26 ` Stephen J. Turnbull
@ 2011-02-01 16:52 ` Karl Fogel
2011-02-02 12:27 ` Stephen J. Turnbull
0 siblings, 1 reply; 18+ messages in thread
From: Karl Fogel @ 2011-02-01 16:52 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: emacs-devel, Thierry Volpiatto
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
>Karl Fogel writes:
> > "Stephen J. Turnbull" <stephen@xemacs.org> writes:
> > > > or creating a basename function
> > >
> > >Un-Pythonic. But then, this isn't Python, so I guess it's OK. ;-)
> >
> > $ python
> > Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
> > >>> import os.path
> > >>> os.path.basename("/home/kfogel/README")
> > 'README'
> > >>> quit()
> > $
>
>You know what I mean. "Not every three-line function needs to be a
>built-in." AFAIK Python doesn't have an equivalent to
>file-name-directory; you need to write that yourself.
Oh, sorry -- I didn't actually know that's what you meant.
(Sometimes people use "Pythonic" to mean "whatever matches my taste";
you were being more careful than that, but unfortunately it was lost on
me because I've been too degraded by other conversations.)
FWIW, for me the compelling argument for a `basename' function is that
then M-x apropos will find it (and programmers often need it). Given
that "basename" seems to have become the standard term for this
functionality, we should take the simplest step that makes it findable
via that term. If there's some other method that will accomplish the
same thing, that's fine.
-Karl
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: how having the basename of a file or directory
2011-02-01 16:52 ` Karl Fogel
@ 2011-02-02 12:27 ` Stephen J. Turnbull
0 siblings, 0 replies; 18+ messages in thread
From: Stephen J. Turnbull @ 2011-02-02 12:27 UTC (permalink / raw)
To: Karl Fogel; +Cc: Thierry Volpiatto, emacs-devel
Karl Fogel writes:
> FWIW, for me the compelling argument for a `basename' function is that
> then M-x apropos will find it (and programmers often need it).
Both points are true, but I find it a little less than compelling. I
use "filename" with apropos in this context.
The argument you make is similar to the arguments often made for
changing or aliasing "kill" to "cut" and "yank" to "paste", and I find
them not quite compelling, too. Emacs is different from other
applications; "kill" and "yank" are quite a bit more general (and
useful) in Emacs than "cut" (to clipboard) and "paste" (to clipboard)
IMO. (I guess with modern clipboards that can handle multiple
cuttings you can do the same kinds of things that you can do with
Emacs's kill-ring, but I don't know anybody who actually does, a
strong contrast to Emacs practice.)
YMMV, IMHO of course.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2011-02-02 12:27 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-31 7:25 how having the basename of a file or directory Thierry Volpiatto
2011-01-31 8:30 ` Stephen J. Turnbull
2011-01-31 8:59 ` Thierry Volpiatto
2011-01-31 10:28 ` Andreas Schwab
2011-01-31 11:03 ` Thierry Volpiatto
2011-01-31 12:07 ` Andreas Schwab
2011-01-31 12:19 ` Thierry Volpiatto
2011-01-31 12:53 ` Andreas Schwab
2011-01-31 15:29 ` Stefan Monnier
2011-01-31 16:30 ` Thierry Volpiatto
2011-01-31 16:43 ` Karl Fogel
2011-01-31 19:53 ` Stefan Monnier
2011-01-31 20:39 ` Thierry Volpiatto
2011-02-01 11:55 ` Stephen J. Turnbull
2011-02-01 15:37 ` Karl Fogel
2011-02-01 16:26 ` Stephen J. Turnbull
2011-02-01 16:52 ` Karl Fogel
2011-02-02 12:27 ` Stephen J. Turnbull
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.