* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
@ 2017-10-12 3:26 Kaushal Modi
2017-10-12 3:36 ` Kaushal Modi
2017-10-12 13:34 ` Tino Calancha
0 siblings, 2 replies; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 3:26 UTC (permalink / raw)
To: 28792, tino.calancha
[-- Attachment #1: Type: text/plain, Size: 4097 bytes --]
Hello,
This seems to be a regression from emacs 25.x.
If I have set delete-by-moving-to-trash to t AND trash-directory to a
custom value (there's a qualifier though, read further), I get this error,
but that does not trigger backtrace even after toggle-debug-on-error!
=====
Trashing...
(file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
=====
I was though able to force a backtrace (shown below) after trying to
recreate the same error after evaluating:
(setq debug-on-message "Non-regular")
=====
Debugger entered--Lisp error: "(file-error Non-regular file Is a directory
/home/kmodi/.emacs.d/foo)\n"
message("%s" "(file-error Non-regular file Is a directory
/home/kmodi/.emacs.d/foo)\n")
dired-log-summary("1 of 1 deletion failed" ("/home/kmodi/.emacs.d/foo"))
dired-internal-do-deletions((("/home/kmodi/.emacs.d/foo" . 2827)) nil t)
dired-do-delete(nil)
funcall-interactively(dired-do-delete nil)
call-interactively(dired-do-delete nil nil)
command-execute(dired-do-delete)
=====
Here is the recipe to recreate this in emacs -Q:
1. First evaluate the below
(progn
(setq delete-by-moving-to-trash t)
(setq trash-directory
(let ((dir (concat temporary-file-directory
(getenv "USER") "/.trash_emacs/"))) ;Must end
with /
(mkdir dir :parents)
dir))
(setq debug-on-message "Non-regular"))
2. Now evaluate
;; CASE A
(let ((dir (concat user-emacs-directory "foo/")))
(mkdir dir :parents)
(dired (concat dir "..")))
Now when you move the point to the foo dir, hit D and type yes, you will
get the above pasted backtrace.
Now here is the qualifier piece.. the same error does not happen if I try
to delete a directory in the temporary-file-directory!
So when I evaluate:
;; CASE B
(let ((dir (concat temporary-file-directory "foo/")))
(mkdir dir :parents)
(dired (concat dir "..")))
Then move the point to the foo dir, hit D and type yes, the deletion
(trashing) of that foo directory happens fine without that error.
So with this, CASE A gives error, CASE B does not.
Here's a twist..
Now let's move the trash directory from temporary-file-directory to
user-emacs-directory .. eval the below:
(setq trash-directory
(let ((dir (concat user-emacs-directory "/.trash_emacs/"))) ;Must
end with /
(mkdir dir :parents)
dir))
NOW, CASE A above will work fine, and CASE B will give that error.
My machine is RHEL 6.6. And the drives are NFS mounts. So I don't know
which of the below is true:
- Gives an error if the ORIG directory and TRASH directory are on possibly
different mounts.
- Gives an error if the ORIG and TRASH directory do not have the same root
directory (/home vs /tmp in the above example).
So that is the main bug report.
Side bug report on the fact that the below error does not generate a
backtrace with toggle-debug-on-error.. why is that?
(file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
(Thanks for reading through this whole bug report.. hopefully someone is
able to reproduce this issue and fix it.)
-----
In GNU Emacs 26.0.60 (build 26, x86_64-pc-linux-gnu, GTK+ Version 2.24.23)
of 2017-10-11
Repository revision: 419a371f8b3d4ba200770be07136f909c7984ece
Windowing system distributor 'The X.Org Foundation', version 11.0.60900000
System Description: Red Hat Enterprise Linux Workstation release 6.6
(Santiago)
Configured using:
'configure --with-modules
--prefix=/home/kmodi/usr_local/apps/6/emacs/emacs-26
'--program-transform-name=s/^ctags$/ctags_emacs/'
'CPPFLAGS=-I/home/kmodi/usr_local/6/include -I/usr/include/freetype2
-I/usr/include' 'CFLAGS=-ggdb3 -O0' 'CXXFLAGS=-ggdb3 -O0'
'LDFLAGS=-L/home/kmodi/usr_local/6/lib -L/home/kmodi/usr_local/6/lib64
-ggdb3''
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK2 X11 MODULES
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=none
locale-coding-system: utf-8-unix
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 6102 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 3:26 bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error Kaushal Modi
@ 2017-10-12 3:36 ` Kaushal Modi
2017-10-12 3:51 ` Kaushal Modi
2017-10-12 13:34 ` Tino Calancha
1 sibling, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 3:36 UTC (permalink / raw)
To: 28792, Tino Calancha
[-- Attachment #1: Type: text/plain, Size: 521 bytes --]
I'd like to add that if I leave the value of trash-directory to nil, then I
believe the default system trash directory is created somewhere in my /home.
Because then, based on my earlier email, CASE A (deleting directory in my
emacs user dir works fine, but CASE B (deleting directory in my /tmp) gives
that error.
So far, at least on my machine, it looks like if
- delete-by-moving-to-trash is t, AND
- trash-directory is in /tmp and to-be-deleted-dir in is HOME (or
vice-versa)
this error occurs.
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1372 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 3:36 ` Kaushal Modi
@ 2017-10-12 3:51 ` Kaushal Modi
2017-10-12 12:50 ` Göktuğ Kayaalp
0 siblings, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 3:51 UTC (permalink / raw)
To: 28792, Paul Eggert
[-- Attachment #1: Type: text/plain, Size: 3156 bytes --]
On Wed, Oct 11, 2017 at 11:35 PM Kaushal Modi <kaushal.modi@gmail.com>
wrote:
> I'd like to add that if I leave the value of trash-directory to nil, then
> I believe the default system trash directory is created somewhere in my
> /home.
>
> Because then, based on my earlier email, CASE A (deleting directory in my
> emacs user dir works fine, but CASE B (deleting directory in my /tmp) gives
> that error.
>
> So far, at least on my machine, it looks like if
>
> - delete-by-moving-to-trash is t, AND
> - trash-directory is in /tmp and to-be-deleted-dir in is HOME (or
> vice-versa)
>
> this error occurs.
>
The situation unfolds further!
Turns out this has nothing to do with dired. So taking off Tino from the
To: list (sorry for doing that earlier).
Now I think that this probably has to do with the rename-file series of
commits (
http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-26&id=446e92548f932f18d57924573b49b5e6f4ae70c4
).
So copying Paul.
Here are even simpler recipes verified in emacs -Q:
1. First eval this one form to catch the error back trace
(setq debug-on-message "Non-regular")
2. Now eval the 3 forms below one by one.. the last one should fail as the
trash-directory and to-be-del directory do not share the same root?/mount?
;; WORKS
;; Both trash-directory and to-be-del dirs in temporary-file-directory
(let ((trash-directory (concat temporary-file-directory
(getenv "USER") "/.trash_emacs/"))
(to-be-del (concat temporary-file-directory "foo/")))
(mkdir trash-directory :parents)
(mkdir to-be-del :parents)
(move-file-to-trash to-be-del))
;; WORKS
;; Both trash-directory and to-be-del dirs in user-emacs-directory
(let ((trash-directory (concat user-emacs-directory "/.trash_emacs/"))
(to-be-del (concat user-emacs-directory "foo/")))
(mkdir trash-directory :parents)
(mkdir to-be-del :parents)
(move-file-to-trash to-be-del))
;; FAILS!!
;; trash-directory in temporary-file-directory but to-be-del dir in
;; user-emacs-directory
(let ((trash-directory (concat user-emacs-directory "/.trash_emacs/"))
(to-be-del (concat temporary-file-directory "foo/")))
(mkdir trash-directory :parents)
(mkdir to-be-del :parents)
(move-file-to-trash to-be-del))
When I eval this 3rd form, I get this error back trace:
Debugger entered--Lisp error: (file-error "Non-regular file" "Is a
directory" "/tmp/foo")
rename-file("/tmp/foo" "/home/kmodi/.emacs.d/.trash_emacs/foo.~1~")
move-file-to-trash("/tmp/foo/")
(let ((trash-directory (concat user-emacs-directory "/.trash_emacs/"))
(to-be-del (concat temporary-file-directory "foo/"))) (mkdir
trash-directory :parents) (mkdir to-be-del :parents) (move-file-to-trash
to-be-del))
eval((let ((trash-directory (concat user-emacs-directory
"/.trash_emacs/")) (to-be-del (concat temporary-file-directory "foo/")))
(mkdir trash-directory :parents) (mkdir to-be-del :parents)
(move-file-to-trash to-be-del)) nil)
elisp--eval-last-sexp(nil)
eval-last-sexp(nil)
funcall-interactively(eval-last-sexp nil)
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 5161 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 3:51 ` Kaushal Modi
@ 2017-10-12 12:50 ` Göktuğ Kayaalp
2017-10-12 12:58 ` Eli Zaretskii
2017-10-12 12:58 ` Kaushal Modi
0 siblings, 2 replies; 27+ messages in thread
From: Göktuğ Kayaalp @ 2017-10-12 12:50 UTC (permalink / raw)
To: Kaushal Modi; +Cc: Paul Eggert, 28792
Quite recently I've opened and retreated the similar bug#28791, trying
to trash directories recursively. I did not use a custom
trash-directory, but I got the same error. Turns out that it was
delete-by-moving-to-trash that provoked the error (with an indentical
message to yours). Emptying the ~/.local/share/Trash/ folder solved the
issue for me. I observed that in ~/.local/share/Trash/info/ some
.trashinfo files were created with the name of the directory (say
<dirname>) I was trying to delete, one <dirname>.trashinfo and many
<dirname><random bits>.trashinfo. I've tried to understand
sth. inspecting the recent changes to rename-file in src/fileio.c using
vc-annotate, and some recent commits like a1cea94c0b seem relevant,
altho my C knowledge is very basic, and even more so of the Emacs style
and C codebase. I've experienced this on master since about a couple
weeks, since my second-last build thereof, but my third-last build was
quite some time ago.
--
İ. Göktuğ Kayaalp <http://www.gkayaalp.com/>
024C 30DD 597D 142B 49AC
40EB 465C D949 B101 2427
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 12:50 ` Göktuğ Kayaalp
@ 2017-10-12 12:58 ` Eli Zaretskii
2017-10-12 13:02 ` Kaushal Modi
2017-10-12 13:37 ` Göktuğ Kayaalp
2017-10-12 12:58 ` Kaushal Modi
1 sibling, 2 replies; 27+ messages in thread
From: Eli Zaretskii @ 2017-10-12 12:58 UTC (permalink / raw)
To: Göktuğ Kayaalp; +Cc: kaushal.modi, eggert, 28792
> From: Göktuğ Kayaalp <self@gkayaalp.com>
> Date: Thu, 12 Oct 2017 15:50:26 +0300
> Cc: Paul Eggert <eggert@cs.ucla.edu>, 28792@debbugs.gnu.org
>
> Quite recently I've opened and retreated the similar bug#28791, trying
> to trash directories recursively. I did not use a custom
> trash-directory, but I got the same error. Turns out that it was
> delete-by-moving-to-trash that provoked the error (with an indentical
> message to yours). Emptying the ~/.local/share/Trash/ folder solved the
> issue for me. I observed that in ~/.local/share/Trash/info/ some
> .trashinfo files were created with the name of the directory (say
> <dirname>) I was trying to delete, one <dirname>.trashinfo and many
> <dirname><random bits>.trashinfo.
This use case raises an interesting question: what should be the
behavior of delete-by-moving-to-trash when the Trash directory already
includes a directory by the same name as the non-directory file being
deleted? Are files in the Trash directory generally unimportant
enough to disregard these situations, or does this use case run afoul
of the ability to restore the trashed files later?
I don't know the answers, as I intentionally avoid using the system
trash.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 12:50 ` Göktuğ Kayaalp
2017-10-12 12:58 ` Eli Zaretskii
@ 2017-10-12 12:58 ` Kaushal Modi
2017-10-12 13:16 ` Eli Zaretskii
1 sibling, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 12:58 UTC (permalink / raw)
To: Göktuğ Kayaalp; +Cc: Paul Eggert, 28792
[-- Attachment #1: Type: text/plain, Size: 965 bytes --]
On Thu, Oct 12, 2017 at 8:50 AM Göktuğ Kayaalp <self@gkayaalp.com> wrote:
> Quite recently I've opened and retreated the similar bug#28791, trying
> to trash directories recursively. I did not use a custom
> trash-directory, but I got the same error. Turns out that it was
> delete-by-moving-to-trash that provoked the error (with an indentical
> message to yours). Emptying the ~/.local/share/Trash/ folder solved the
> issue for me. I observed that in ~/.local/share/Trash/info/ some
> .trashinfo files were created with the name of the directory (say
> <dirname>) I was trying to delete, one <dirname>.trashinfo and many
> <dirname><random bits>.trashinfo.
>
That is still a bug in Emacs, at least because the error message is not
helpful. It is also in a non-standard format with incorrect capitalizations
in-between and doesn't even generate a backtrace by default.
Also this issue did not happen on emacs 25.x.
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1400 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 12:58 ` Eli Zaretskii
@ 2017-10-12 13:02 ` Kaushal Modi
2017-10-12 13:37 ` Göktuğ Kayaalp
1 sibling, 0 replies; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 13:02 UTC (permalink / raw)
To: Eli Zaretskii, Göktuğ Kayaalp; +Cc: eggert, 28792
[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]
On Thu, Oct 12, 2017 at 8:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> This use case raises an interesting question: what should be the
> behavior of delete-by-moving-to-trash when the Trash directory already
> includes a directory by the same name as the non-directory file being
> deleted? Are files in the Trash directory generally unimportant
> enough to disregard these situations, or does this use case run afoul
> of the ability to restore the trashed files later?
>
The fact that the user deleted the files means that the files were not
important. If the user deleted them by mistake, then the trash serves as a
last-resort to restore the files from. Trash is not a "backup".. so unlike
the Emacs backup, there shouldn't be a need to store multiple revisions of
trash.
IMO, if a file or a directory exists by the same name in trash, the
move-file-to-trash should just overwrite that.. if a foo file already
exists and a foo/ dir is being trashed, then just delete the old trashed
foo file and replace with the newly trashed foo/ dir.
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1481 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 12:58 ` Kaushal Modi
@ 2017-10-12 13:16 ` Eli Zaretskii
2017-10-12 13:31 ` Kaushal Modi
2017-10-12 14:24 ` Noam Postavsky
0 siblings, 2 replies; 27+ messages in thread
From: Eli Zaretskii @ 2017-10-12 13:16 UTC (permalink / raw)
To: Kaushal Modi; +Cc: self, eggert, 28792
> From: Kaushal Modi <kaushal.modi@gmail.com>
> Date: Thu, 12 Oct 2017 12:58:57 +0000
> Cc: Paul Eggert <eggert@cs.ucla.edu>, 28792@debbugs.gnu.org
>
> That is still a bug in Emacs, at least because the error message is not helpful. It is also in a non-standard
> format with incorrect capitalizations in-between and doesn't even generate a backtrace by default.
FWIW, I see no problem with the error message, we produce such error
messages in quite a few other places in fileio.c. The capitalization
seems okay, too.
As for lack of backtrace, that's because the error comes from a C
primitive.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 13:16 ` Eli Zaretskii
@ 2017-10-12 13:31 ` Kaushal Modi
2017-10-12 13:44 ` Eli Zaretskii
2017-10-12 14:02 ` Andreas Schwab
2017-10-12 14:24 ` Noam Postavsky
1 sibling, 2 replies; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 13:31 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: self, eggert, 28792
[-- Attachment #1: Type: text/plain, Size: 1246 bytes --]
On Thu, Oct 12, 2017 at 9:16 AM Eli Zaretskii <eliz@gnu.org> wrote:
> FWIW, I see no problem with the error message, we produce such error
> messages in quite a few other places in fileio.c. The capitalization
> seems okay, too.
>
OK, but it seems non-standard compared to error messages from Elisp land.
Shouldn't
(file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
look like:
file-error: Non-regular file: /home/kmodi/.emacs.d/foo is a directory
- Why those parentheses?
- Why are "N" and "I" capitalized in-between that "sentence".. error
messages are usually sentences without ending in period, right?
- Above instead looks like a list printed with 3 elements.
Also, the error is not-informative.. the user is trying to trash foo/ and
knows that foo/ is a directory.. so how would
(file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
help?
> As for lack of backtrace, that's because the error comes from a C
> primitive.
>
For the lack of better understanding, isn't it possible to set the
"severity" of certain messages to be of Error status (or something like
that), so that a backtrace automatically analogous to what I get on my
above-mentioned debug-on-message setting?
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 2043 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 3:26 bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error Kaushal Modi
2017-10-12 3:36 ` Kaushal Modi
@ 2017-10-12 13:34 ` Tino Calancha
1 sibling, 0 replies; 27+ messages in thread
From: Tino Calancha @ 2017-10-12 13:34 UTC (permalink / raw)
To: Kaushal Modi; +Cc: Paul Eggert, 28792
Kaushal Modi <kaushal.modi@gmail.com> writes:
I don't have strong opinion about the issue because I don't
use the trash either.
From a git bisect:
01c885f21f343045783eb9ad1ff5f9b83d6cd789 is the first bad commit
commit 01c885f21f343045783eb9ad1ff5f9b83d6cd789
Author: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun Sep 10 15:39:24 2017 -0700
Fix race with rename-file etc. with dir NEWNAME
This changes the behavior of rename-file etc. slightly.
The old behavior mostly disagreed with the documentation, and had
a race condition bug that could allow attackers to modify victims'
write-protected directories (Bug#27986).
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 12:58 ` Eli Zaretskii
2017-10-12 13:02 ` Kaushal Modi
@ 2017-10-12 13:37 ` Göktuğ Kayaalp
1 sibling, 0 replies; 27+ messages in thread
From: Göktuğ Kayaalp @ 2017-10-12 13:37 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: kaushal.modi, eggert, 28792
On 2017-10-12 15:58 +03, Eli Zaretskii <eliz@gnu.org> wrote:
> This use case raises an interesting question: what should be the
> behavior of delete-by-moving-to-trash when the Trash directory already
> includes a directory by the same name as the non-directory file being
> deleted? Are files in the Trash directory generally unimportant
> enough to disregard these situations, or does this use case run afoul
> of the ability to restore the trashed files later?
>
> I don't know the answers, as I intentionally avoid using the system
> trash.
>
The Freedesktop spec [1] says (under "Contents of a trash directory"):
A trash directory contains two subdirectories, named info and files.
The $trash/files directory contains the files and directories that
were trashed. When a file or directory is trashed, it MUST be moved
into this directory5 . The names of files in this directory are to
be determined by the implementation; the only limitation is that
they must be unique within the directory. _Even if a file with the
same name and location gets trashed many times, each subsequent
trashing must not overwrite a previous copy (a)_. The access rights,
access time, modification time and extended attributes (if any) for
a file/directory in $trash/files SHOULD be the same as the
file/directory had before getting trashed.
IMPORTANT NOTE. While an implementation may choose to base filenames
in the $trash/files directory on the original filenames, this is
never to be taken for granted6. A filename in the $trash/files
directory MUST NEVER be used to recover the original filename; use
the info file (see below) for that. (If an info file corresponding
to a file/directory in $trash/files is not available, this is an
emergency case, and MUST be clearly presented as such to the user or
to the system administrator).
The $trash/info directory contains an “information file” for every
file and directory in $trash/files. This file MUST have exactly the
same name as the file or directory in $trash/files, plus the
extension “.trashinfo”7.
It seems that the file name under <trash dir>/files/ is not important
and only an identifier, used to match the corresponding
<file name>.trashinfo file, which contains the path the file originally
was. Thus, it should be possible to have that <file name> be a random
string with a sensible prefix (the name of the deleted file), allowing
to delete files at identical full-paths without trouble. IMO we can
never know how important the files under the Trash/files directory might
or might not be, so it would be better to err on the safe side.
My trash can looks like this:
/home/g/.local/share/Trash
├── files
│ └── testdir
└── info
└── testdir.trashinfo
And info/testdir.trashinfo like this:
[Trash Info]
Path=/home/g/testdir
DeletionDate=2017-10-12T15:01:27
I beleive the feature is useful, I myself do quite a bit of mistaken
deletings, and even though most of the more important stuff is version
controlled, things happen..
[1] https://specifications.freedesktop.org/trash-spec/trashspec-latest.html
--
İ. Göktuğ Kayaalp <http://www.gkayaalp.com/>
024C 30DD 597D 142B 49AC
40EB 465C D949 B101 2427
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 13:31 ` Kaushal Modi
@ 2017-10-12 13:44 ` Eli Zaretskii
2017-10-12 14:02 ` Andreas Schwab
1 sibling, 0 replies; 27+ messages in thread
From: Eli Zaretskii @ 2017-10-12 13:44 UTC (permalink / raw)
To: Kaushal Modi; +Cc: self, eggert, 28792
> From: Kaushal Modi <kaushal.modi@gmail.com>
> Date: Thu, 12 Oct 2017 13:31:49 +0000
> Cc: self@gkayaalp.com, eggert@cs.ucla.edu, 28792@debbugs.gnu.org
>
> FWIW, I see no problem with the error message, we produce such error
> messages in quite a few other places in fileio.c. The capitalization
> seems okay, too.
>
> OK, but it seems non-standard compared to error messages from Elisp land.
When the error comes from a primitive, and quotes a system error
message, it always looks like this. E.g., try evaluating this:
(insert-file-contents "no-such-file")
> Shouldn't
>
> (file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
>
> look like:
>
> file-error: Non-regular file: /home/kmodi/.emacs.d/foo is a directory
No, we put the file last because there could be a list of additional
objects to print.
> - Why those parentheses?
It depends on how did you get the error and where did you pick it up
from: echo area, *Messages*, *scratch*, something else?
> - Why are "N" and "I" capitalized in-between that "sentence".. error messages are usually sentences without
> ending in period, right?
The "error message" in this case is concocted from several parts, each
one has its own capitalization. We used to lower-case some of that,
but doing sop has its own problems, because the system error messages
can be localized.
> - Above instead looks like a list printed with 3 elements.
That's because it is.
> Also, the error is not-informative.. the user is trying to trash foo/ and knows that foo/ is a directory.. so how
> would
>
> (file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
>
> help?
It tells you that /home/kmodi/.emacs.d/foo is a directory, not a
regular file.
I'm not saying that the message couldn't be improved, but doing so is
only possible in move-file-to-trash, not in primitives below it.
> As for lack of backtrace, that's because the error comes from a C
> primitive.
>
> For the lack of better understanding, isn't it possible to set the "severity" of certain messages to be of Error
> status (or something like that), so that a backtrace automatically analogous to what I get on my
> above-mentioned debug-on-message setting?
What you see _is_ an error already.
Once again, I think this issue should be resolved so as not to fail
file deletion, but let's not muddy the waters by unrelated aspects,
such as the error message formatting, which works as designed here.
the real problem is elsewhere.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 13:31 ` Kaushal Modi
2017-10-12 13:44 ` Eli Zaretskii
@ 2017-10-12 14:02 ` Andreas Schwab
2017-10-12 14:06 ` Kaushal Modi
1 sibling, 1 reply; 27+ messages in thread
From: Andreas Schwab @ 2017-10-12 14:02 UTC (permalink / raw)
To: Kaushal Modi; +Cc: self, eggert, 28792
On Okt 12 2017, Kaushal Modi <kaushal.modi@gmail.com> wrote:
> OK, but it seems non-standard compared to error messages from Elisp land.
>
> Shouldn't
>
> (file-error Non-regular file Is a directory /home/kmodi/.emacs.d/foo)
>
> look like:
>
> file-error: Non-regular file: /home/kmodi/.emacs.d/foo is a directory
>
> - Why those parentheses?
> - Why are "N" and "I" capitalized in-between that "sentence".. error
> messages are usually sentences without ending in period, right?
> - Above instead looks like a list printed with 3 elements.
No, it contains 4 elements:
- the error symbol (file-error)
- a descriptive string ("Non-regular file")
- the system error as a string ("Is a directory")
- the offending object ("/home/kmodi/.emacs.d/foo")
> Also, the error is not-informative.. the user is trying to trash foo/ and
> knows that foo/ is a directory.. so how would
copy-file does not support copying non-regular files.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 14:02 ` Andreas Schwab
@ 2017-10-12 14:06 ` Kaushal Modi
2017-10-12 15:07 ` Kaushal Modi
2017-10-12 15:27 ` Andreas Schwab
0 siblings, 2 replies; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 14:06 UTC (permalink / raw)
To: Andreas Schwab; +Cc: self, eggert, 28792
[-- Attachment #1: Type: text/plain, Size: 809 bytes --]
On Thu, Oct 12, 2017 at 10:02 AM Andreas Schwab <schwab@suse.de> wrote:
> No, it contains 4 elements:
>
> - the error symbol (file-error)
> - a descriptive string ("Non-regular file")
> - the system error as a string ("Is a directory")
> - the offending object ("/home/kmodi/.emacs.d/foo")
>
Thanks.
> > Also, the error is not-informative.. the user is trying to trash foo/ and
> > knows that foo/ is a directory.. so how would
>
> copy-file does not support copying non-regular files.
>
But it seems to work in some cases i.e. trashing a dir works*. See my
recipe in my earlier message in this debbugs thread[1]. Somehow this error
has a correlation with relative locations of the user-set trash dir and
to-be-deleted dir..
[1]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28792#11
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1484 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 13:16 ` Eli Zaretskii
2017-10-12 13:31 ` Kaushal Modi
@ 2017-10-12 14:24 ` Noam Postavsky
2017-10-12 14:43 ` Drew Adams
1 sibling, 1 reply; 27+ messages in thread
From: Noam Postavsky @ 2017-10-12 14:24 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Göktuğ Kayaalp, Kaushal Modi, Paul Eggert, 28792
On Thu, Oct 12, 2017 at 9:16 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Kaushal Modi <kaushal.modi@gmail.com>
>> Date: Thu, 12 Oct 2017 12:58:57 +0000
>> Cc: Paul Eggert <eggert@cs.ucla.edu>, 28792@debbugs.gnu.org
>>
>> That is still a bug in Emacs, at least because the error message is not helpful. It is also in a non-standard
>> format with incorrect capitalizations in-between and doesn't even generate a backtrace by default.
>
> FWIW, I see no problem with the error message, we produce such error
> messages in quite a few other places in fileio.c. The capitalization
> seems okay, too.
>
> As for lack of backtrace, that's because the error comes from a C
> primitive.
The lack of backtrace and odd formatting is because of a
condition-case in dired-internal-do-deletions:
(defun dired-internal-do-deletions (l arg &optional trash)
...
(condition-case err
...
(dired-delete-file fn dired-recursive-deletes trash)
...
(error ;; catch errors from failed deletions
(dired-log "%s\n" err)
(setq failures (cons (car (car l)) failures)))))
Compare
(condition-case err
(signal 'file-error '("Non-regular file" "Is a directory" "/the/file/"))
(error
(message "%s\n" err)))
vs
(condition-case err
(signal 'file-error '("Non-regular file" "Is a directory" "/the/file/"))
(error
(message "%s: %s\n" (car err) (error-message-string err))))
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 14:24 ` Noam Postavsky
@ 2017-10-12 14:43 ` Drew Adams
2017-10-12 15:07 ` Andreas Schwab
0 siblings, 1 reply; 27+ messages in thread
From: Drew Adams @ 2017-10-12 14:43 UTC (permalink / raw)
To: Noam Postavsky, Eli Zaretskii
Cc: Göktuğ Kayaalp, Kaushal Modi, Paul Eggert, 28792
What Noam said.
I think the problem with the error message is not that
it was composed from multiple pieces. It is that after
those pieces have been joined the result is not a
normal message.
In particular, there should be some punctuation or other
separation between the piece that says that the thing is
not a regular file ("Non-regular file" or whatever) and
the piece that says what is not regular about it ("Is a
directory" or whatever).
This message is not normal (it is confusing):
(file-error Non-regular file Is a directory /the/file/)
This message is better (though not ideal):
file-error: Non-regular file: Is a directory, /the/file/
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 14:06 ` Kaushal Modi
@ 2017-10-12 15:07 ` Kaushal Modi
2017-10-12 15:15 ` Eli Zaretskii
2017-10-12 15:27 ` Andreas Schwab
1 sibling, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 15:07 UTC (permalink / raw)
To: Andreas Schwab, eggert, 28792, Eli Zaretskii; +Cc: self, Noam Postavsky
[-- Attachment #1: Type: text/plain, Size: 650 bytes --]
Hello all,
I have created a new debbugs to discuss and resolve the issue with the
error message formatting and it not generating a backtrace:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28797
For the issue pertaining to this bug, the last relevant updates were:
- https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28792#11
- https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28792#44
Let's continue from there... why does that error show up on trashing (i.e.
moving, not deleting) a directory, dependent on the value of
trash-directory and the location of the directory I am trying to trash?
Sorry for taking discussion off-topic.
> --
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1367 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 14:43 ` Drew Adams
@ 2017-10-12 15:07 ` Andreas Schwab
2017-10-12 15:10 ` Drew Adams
0 siblings, 1 reply; 27+ messages in thread
From: Andreas Schwab @ 2017-10-12 15:07 UTC (permalink / raw)
To: Drew Adams
Cc: Paul Eggert, Noam Postavsky, 28792, Kaushal Modi,
Göktuğ Kayaalp
On Okt 12 2017, Drew Adams <drew.adams@oracle.com> wrote:
> In particular, there should be some punctuation or other
> separation between the piece that says that the thing is
> not a regular file ("Non-regular file" or whatever) and
> the piece that says what is not regular about it ("Is a
> directory" or whatever).
That can be accomplished by formatting it with "%S".
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 15:07 ` Andreas Schwab
@ 2017-10-12 15:10 ` Drew Adams
0 siblings, 0 replies; 27+ messages in thread
From: Drew Adams @ 2017-10-12 15:10 UTC (permalink / raw)
To: Andreas Schwab
Cc: Paul Eggert, Noam Postavsky, 28792, Kaushal Modi,
Göktuğ Kayaalp
> > In particular, there should be some punctuation or other
> > separation between the piece that says that the thing is
> > not a regular file ("Non-regular file" or whatever) and
> > the piece that says what is not regular about it ("Is a
> > directory" or whatever).
>
> That can be accomplished by formatting it with "%S".
Of course it can be easily done. It is not being done now.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 15:07 ` Kaushal Modi
@ 2017-10-12 15:15 ` Eli Zaretskii
0 siblings, 0 replies; 27+ messages in thread
From: Eli Zaretskii @ 2017-10-12 15:15 UTC (permalink / raw)
To: Kaushal Modi; +Cc: eggert, npostavs, schwab, 28792, self
> From: Kaushal Modi <kaushal.modi@gmail.com>
> Date: Thu, 12 Oct 2017 15:07:35 +0000
> Cc: self@gkayaalp.com, Noam Postavsky <npostavs@users.sourceforge.net>,
> Drew Adams <drew.adams@oracle.com>
>
> why does that error show up on trashing (i.e. moving, not deleting) a directory,
> dependent on the value of trash-directory and the location of the directory I am trying to trash?
Because one directory already includes a file/directory of the same
names as the one you are trying to trash, whereas the other one does
not.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 14:06 ` Kaushal Modi
2017-10-12 15:07 ` Kaushal Modi
@ 2017-10-12 15:27 ` Andreas Schwab
2017-10-12 15:31 ` Kaushal Modi
2017-10-12 20:25 ` Paul Eggert
1 sibling, 2 replies; 27+ messages in thread
From: Andreas Schwab @ 2017-10-12 15:27 UTC (permalink / raw)
To: Kaushal Modi; +Cc: self, eggert, 28792
On Okt 12 2017, Kaushal Modi <kaushal.modi@gmail.com> wrote:
> But it seems to work in some cases i.e. trashing a dir works*. See my
> recipe in my earlier message in this debbugs thread[1]. Somehow this error
> has a correlation with relative locations of the user-set trash dir and
> to-be-deleted dir..
That depend on whether the trash is on the same file system as the
directory to trash. rename-file now refuses to copy directory across
file systems unless the target name ends in a slash.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 15:27 ` Andreas Schwab
@ 2017-10-12 15:31 ` Kaushal Modi
2017-10-12 20:25 ` Paul Eggert
1 sibling, 0 replies; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 15:31 UTC (permalink / raw)
To: Andreas Schwab; +Cc: self, eggert, 28792
[-- Attachment #1: Type: text/plain, Size: 755 bytes --]
On Thu, Oct 12, 2017 at 11:27 AM Andreas Schwab <schwab@suse.de> wrote:
> On Okt 12 2017, Kaushal Modi <kaushal.modi@gmail.com> wrote:
>
> > But it seems to work in some cases i.e. trashing a dir works*. See my
> > recipe in my earlier message in this debbugs thread[1]. Somehow this
> error
> > has a correlation with relative locations of the user-set trash dir and
> > to-be-deleted dir..
>
> That depend on whether the trash is on the same file system as the
> directory to trash. rename-file now refuses to copy directory across
> file systems unless the target name ends in a slash.
>
That means that as dired-do-delete is a wrapper at some level over
move-file-to-trash, that slash appending should be done in dired somewhere?
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 1229 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 15:27 ` Andreas Schwab
2017-10-12 15:31 ` Kaushal Modi
@ 2017-10-12 20:25 ` Paul Eggert
2017-10-12 21:41 ` Kaushal Modi
1 sibling, 1 reply; 27+ messages in thread
From: Paul Eggert @ 2017-10-12 20:25 UTC (permalink / raw)
To: Andreas Schwab, Kaushal Modi; +Cc: self, 28792
[-- Attachment #1: Type: text/plain, Size: 361 bytes --]
On 10/12/2017 08:27 AM, Andreas Schwab wrote:
> rename-file now refuses to copy directory across
> file systems unless the target name ends in a slash.
Thanks for the diagnosis. This is an unintended consequence of the
race-condition patch for rename-file that I installed last month. I
installed the attached patch into the emacs-26 branch to fix the bug.
[-- Attachment #2: 0001-Let-rename-file-rename-dirs-across-filesystems.patch --]
[-- Type: text/x-patch, Size: 1901 bytes --]
From 21df0eec6d056c88c7ffbd5a1c0f76661702d5cf Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 12 Oct 2017 13:08:53 -0700
Subject: [PATCH] Let rename-file rename dirs across filesystems
Problem diagnosed by Andreas Schwab (Bug#28792#65).
This fixes a bug that I introduced in
2017-09-10T22:39:24@eggert@cs.ucla.edu
"Fix race with rename-file etc. with dir NEWNAME".
* src/fileio.c (Frename_file): Copy a source directory across
file system boundaries even if its name does not end in slash.
---
src/fileio.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/fileio.c b/src/fileio.c
index 4bbcec6f17..e57bf46015 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2260,7 +2260,7 @@ This is what happens in interactive use with M-x. */)
(Lisp_Object file, Lisp_Object newname, Lisp_Object ok_if_already_exists)
{
Lisp_Object handler;
- Lisp_Object encoded_file, encoded_newname, symlink_target;
+ Lisp_Object encoded_file, encoded_newname;
file = Fexpand_file_name (file, Qnil);
@@ -2334,12 +2334,22 @@ This is what happens in interactive use with M-x. */)
if (rename_errno != EXDEV)
report_file_errno ("Renaming", list2 (file, newname), rename_errno);
+ struct stat file_st;
bool dirp = !NILP (Fdirectory_name_p (file));
+ if (!dirp)
+ {
+ if (lstat (SSDATA (encoded_file), &file_st) != 0)
+ report_file_error ("Renaming", list2 (file, newname));
+ dirp = S_ISDIR (file_st.st_mode) != 0;
+ }
if (dirp)
call4 (Qcopy_directory, file, newname, Qt, Qnil);
else
{
- symlink_target = Ffile_symlink_p (file);
+ Lisp_Object symlink_target
+ = (S_ISLNK (file_st.st_mode)
+ ? emacs_readlinkat (AT_FDCWD, SSDATA (encoded_file))
+ : Qnil);
if (!NILP (symlink_target))
Fmake_symbolic_link (symlink_target, newname, ok_if_already_exists);
else
--
2.13.6
^ permalink raw reply related [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 20:25 ` Paul Eggert
@ 2017-10-12 21:41 ` Kaushal Modi
2017-10-15 7:18 ` Paul Eggert
0 siblings, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-12 21:41 UTC (permalink / raw)
To: Paul Eggert, Andreas Schwab, 28792-done; +Cc: self
[-- Attachment #1: Type: text/plain, Size: 508 bytes --]
On Thu, Oct 12, 2017 at 4:25 PM Paul Eggert <eggert@cs.ucla.edu> wrote:
> On 10/12/2017 08:27 AM, Andreas Schwab wrote:
> > rename-file now refuses to copy directory across
> > file systems unless the target name ends in a slash.
>
> Thanks for the diagnosis. This is an unintended consequence of the
> race-condition patch for rename-file that I installed last month. I
> installed the attached patch into the emacs-26 branch to fix the bug.
>
Awesome! Thank you! I confirm the bug fix.
--
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 905 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-12 21:41 ` Kaushal Modi
@ 2017-10-15 7:18 ` Paul Eggert
2017-10-15 13:35 ` Kaushal Modi
0 siblings, 1 reply; 27+ messages in thread
From: Paul Eggert @ 2017-10-15 7:18 UTC (permalink / raw)
To: Kaushal Modi, Andreas Schwab, 28792-done; +Cc: self
Kaushal Modi wrote:
> I confirm the bug fix.
Thanks for checking; closing the bug report.
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-15 7:18 ` Paul Eggert
@ 2017-10-15 13:35 ` Kaushal Modi
2017-10-15 13:47 ` Noam Postavsky
0 siblings, 1 reply; 27+ messages in thread
From: Kaushal Modi @ 2017-10-15 13:35 UTC (permalink / raw)
To: Paul Eggert; +Cc: 28792-done
[-- Attachment #1: Type: text/plain, Size: 375 bytes --]
On Sun, Oct 15, 2017, 3:19 AM Paul Eggert
> Thanks for checking; closing the bug report.
>
Thanks. I had though already closed it by emailing to the -done address in
my last email.
I even received a bug-closing confirmation after that.
Is it that the bug got reopened automatically when Tino merged it with
another bug, and so it had to be re-closed?
> --
Kaushal Modi
[-- Attachment #2: Type: text/html, Size: 876 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error
2017-10-15 13:35 ` Kaushal Modi
@ 2017-10-15 13:47 ` Noam Postavsky
0 siblings, 0 replies; 27+ messages in thread
From: Noam Postavsky @ 2017-10-15 13:47 UTC (permalink / raw)
To: Kaushal Modi; +Cc: Paul Eggert, 28792
Kaushal Modi <kaushal.modi@gmail.com> writes:
> Is it that the bug got reopened automatically when Tino merged it
> with another bug, and so it had to be re-closed?
Looks like, yes. The command was 'forcemerge 28828 28792' which puts
the open bug first, hence this bug gets reopened.
https://debbugs.gnu.org/cgi/bugreport.cgi?msg=78;bug=28792
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2017-10-15 13:47 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-12 3:26 bug#28792: 26.0.60; Deleting to a custom trash directory in Dired gives error Kaushal Modi
2017-10-12 3:36 ` Kaushal Modi
2017-10-12 3:51 ` Kaushal Modi
2017-10-12 12:50 ` Göktuğ Kayaalp
2017-10-12 12:58 ` Eli Zaretskii
2017-10-12 13:02 ` Kaushal Modi
2017-10-12 13:37 ` Göktuğ Kayaalp
2017-10-12 12:58 ` Kaushal Modi
2017-10-12 13:16 ` Eli Zaretskii
2017-10-12 13:31 ` Kaushal Modi
2017-10-12 13:44 ` Eli Zaretskii
2017-10-12 14:02 ` Andreas Schwab
2017-10-12 14:06 ` Kaushal Modi
2017-10-12 15:07 ` Kaushal Modi
2017-10-12 15:15 ` Eli Zaretskii
2017-10-12 15:27 ` Andreas Schwab
2017-10-12 15:31 ` Kaushal Modi
2017-10-12 20:25 ` Paul Eggert
2017-10-12 21:41 ` Kaushal Modi
2017-10-15 7:18 ` Paul Eggert
2017-10-15 13:35 ` Kaushal Modi
2017-10-15 13:47 ` Noam Postavsky
2017-10-12 14:24 ` Noam Postavsky
2017-10-12 14:43 ` Drew Adams
2017-10-12 15:07 ` Andreas Schwab
2017-10-12 15:10 ` Drew Adams
2017-10-12 13:34 ` Tino Calancha
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.