From: Vincent Lefevre <vincent@vinc17.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 18851@debbugs.gnu.org
Subject: bug#18851: 24.4; emacs cannot be started if the current directory has been removed
Date: Wed, 29 Oct 2014 16:39:59 +0100 [thread overview]
Message-ID: <20141029153959.GM5545@ypig.lip.ens-lyon.fr> (raw)
In-Reply-To: <83r3xr0x4u.fsf@gnu.org>
On 2014-10-29 16:27:13 +0200, Eli Zaretskii wrote:
> > From: Stefan Monnier <monnier@iro.umontreal.ca>
> > Cc: Eli Zaretskii <eliz@gnu.org>, 18851@debbugs.gnu.org
> > Date: Wed, 29 Oct 2014 08:57:16 -0400
[...]
> > So the current Emacs C code really has no way to access a directory/file
> > which is not accessible from the root directory.
The problem is precisely when Emacs is called on a absolute pathname.
Currently Emacs quits instead of working on this file.
I repeat that I'm NOT asking that Emacs should work with a pathname
relative to a removed directory.
> That's true, but my reading of the code is that the value of the
> directory where Emacs was started is used for the following:
>
> . the default-directory of *scratch*
IMHO, if the current directory no longer exists, the default-directory
of *scratch* can be nil.
> . invocation-name and invocation-directory, if Emacs was invoked via
> a relative file name, like "../foo/bar/emacs".
>
> In the first case, we could try using nil instead, maybe not all hell
> will break lose. The second case is rare even without the removal
> (and makes no sense to me).
emacs --eval '(setq default-directory nil) (find-file "~/out")'
fails, but I wonder why.
> But I'd still like to hear the real-life use case behind this report.
Well, it happens that the current directory is removed for some
reasons, either on purpose or because of some FS error (in particular
if the FS is remote). Now, I may have already an application running
with this current directory, for instance, a MUA. If I want to write
a mail, the MUA will start an editor on an absolute pathname, Emacs
in my case, with the same current directory. But Emacs cannot be
started, just because the current directory no longer exists, meaning
that I can't write my mail without restarting the whole application.
Note: in some cases, one can still use a wrapper to change the current
directory to an existing one, but this can be a bit dangerous in
general, because if there are relative pathnames, one can end up
with loading/writing an incorrect file instead of getting an error.
--
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
next prev parent reply other threads:[~2014-10-29 15:39 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-27 13:33 bug#18851: 24.4; emacs cannot be started if the current directory has been removed Vincent Lefevre
2014-10-28 21:34 ` Glenn Morris
2014-10-29 1:28 ` Vincent Lefevre
2014-10-29 3:50 ` Eli Zaretskii
2014-10-29 8:09 ` Vincent Lefevre
2014-10-29 12:57 ` Stefan Monnier
2014-10-29 14:27 ` Eli Zaretskii
2014-10-29 15:39 ` Vincent Lefevre [this message]
2014-10-29 16:07 ` Eli Zaretskii
2014-10-29 16:44 ` Vincent Lefevre
2014-10-29 16:15 ` Andreas Schwab
2014-10-29 16:51 ` Vincent Lefevre
2014-10-29 17:31 ` Andreas Schwab
2014-10-29 17:45 ` Vincent Lefevre
2014-10-29 18:23 ` Ivan Shmakov
2014-10-29 21:11 ` Andreas Schwab
2014-10-30 0:39 ` Stefan Monnier
2015-06-12 0:39 ` Glenn Morris
2015-06-12 7:53 ` Eli Zaretskii
2015-06-12 15:45 ` Glenn Morris
2015-06-12 19:31 ` Eli Zaretskii
2015-06-13 1:29 ` Glenn Morris
2015-06-13 7:56 ` Eli Zaretskii
2015-06-13 23:45 ` Glenn Morris
2014-10-29 14:23 ` Eli Zaretskii
2014-10-29 15:39 ` Andreas Schwab
2014-10-29 16:00 ` Eli Zaretskii
2014-10-29 16:05 ` Vincent Lefevre
2014-10-29 16:21 ` Eli Zaretskii
2014-10-29 3:40 ` Eli Zaretskii
2014-10-29 10:57 ` Emacs bugs at the Debian BTS Ivan Shmakov
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=20141029153959.GM5545@ypig.lip.ens-lyon.fr \
--to=vincent@vinc17.net \
--cc=18851@debbugs.gnu.org \
--cc=eliz@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.