From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#18851: 24.4; emacs cannot be started if the current directory has been removed Date: Wed, 29 Oct 2014 18:07:33 +0200 Message-ID: <83d29a2722.fsf@gnu.org> References: <87h9ypiqmm.fsf@xvii.vinc17.org> <8k61f398u4.fsf@fencepost.gnu.org> <20141029012802.GS4400@xvii.vinc17.org> <83y4rz1qmj.fsf@gnu.org> <20141029080939.GT4400@xvii.vinc17.org> <83r3xr0x4u.fsf@gnu.org> <20141029153959.GM5545@ypig.lip.ens-lyon.fr> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1414598902 10377 80.91.229.3 (29 Oct 2014 16:08:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 Oct 2014 16:08:22 +0000 (UTC) Cc: 18851@debbugs.gnu.org To: Vincent Lefevre Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 29 17:08:15 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XjVnD-0003WB-8m for geb-bug-gnu-emacs@m.gmane.org; Wed, 29 Oct 2014 17:08:15 +0100 Original-Received: from localhost ([::1]:47189 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XjVnC-0007YS-OS for geb-bug-gnu-emacs@m.gmane.org; Wed, 29 Oct 2014 12:08:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XjVn5-0007YH-E2 for bug-gnu-emacs@gnu.org; Wed, 29 Oct 2014 12:08:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XjVn0-0006qH-Jq for bug-gnu-emacs@gnu.org; Wed, 29 Oct 2014 12:08:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46861) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XjVn0-0006qB-FZ for bug-gnu-emacs@gnu.org; Wed, 29 Oct 2014 12:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XjVmz-0005bs-R6 for bug-gnu-emacs@gnu.org; Wed, 29 Oct 2014 12:08:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 29 Oct 2014 16:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18851 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 18851-submit@debbugs.gnu.org id=B18851.141459886721533 (code B ref 18851); Wed, 29 Oct 2014 16:08:01 +0000 Original-Received: (at 18851) by debbugs.gnu.org; 29 Oct 2014 16:07:47 +0000 Original-Received: from localhost ([127.0.0.1]:38959 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjVmk-0005bE-Hs for submit@debbugs.gnu.org; Wed, 29 Oct 2014 12:07:47 -0400 Original-Received: from mtaout25.012.net.il ([80.179.55.181]:36048) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjVmh-0005au-UE for 18851@debbugs.gnu.org; Wed, 29 Oct 2014 12:07:45 -0400 Original-Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NE700700R29IU00@mtaout25.012.net.il> for 18851@debbugs.gnu.org; Wed, 29 Oct 2014 18:03:03 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NE7001KVR93I960@mtaout25.012.net.il>; Wed, 29 Oct 2014 18:03:03 +0200 (IST) In-reply-to: <20141029153959.GM5545@ypig.lip.ens-lyon.fr> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:95257 > Date: Wed, 29 Oct 2014 16:39:59 +0100 > From: Vincent Lefevre > Cc: Stefan Monnier , 18851@debbugs.gnu.org > > > . 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. You can assume without testing that there will be problems, because Emacs expects to find a meaningful default-directory in *scratch*. The only question is are those problems easy to solve, or are they extremely complex to solve. There's one more subtlety here which you might not be aware of: when Emacs comes up initially, its first steps through the startup process are made before it figures out the user locale and sets up the coding-systems required by that. Until that point, Emacs uses undecoded file names, i.e. essentially byte streams that it can barely interpret (unless they are pure-ASCII). So the code which gives you trouble, that is run very early during startup, is already complicated to support building and starting Emacs in a non-ASCII directory. > 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. Can't you use the --chdir command-line argument to make Emacs start in a safe place? Or does that not work in this situation?