[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/raeburn-startup 250c9ad 04/43: Don't get into an e
From: |
Ken Raeburn |
Subject: |
[Emacs-diffs] scratch/raeburn-startup 250c9ad 04/43: Don't get into an error loop if dumped.elc isn't found. |
Date: |
Mon, 31 Jul 2017 02:10:56 -0400 (EDT) |
branch: scratch/raeburn-startup
commit 250c9adf9b9865df0dbfbe9974832b85c13b9575
Author: Ken Raeburn <address@hidden>
Commit: Ken Raeburn <address@hidden>
Don't get into an error loop if dumped.elc isn't found.
When temacs is run, if dumped.elc isn't in the right place (currently
$srctop/src/dumped.elc, though it's generated in the build tree's src
directory), starting in X11 mode will produce a message about not
finding it, but starting in tty mode will produce an error loop
because internal-echo-keystrokes-prefix isn't defined.
This patch traps the error and kills the Emacs session with an exit
code of 42, and no message. This is worse than the X11 behavior, but
better than the tty behavior.
It's not a long term fix though.
* src/emacs.c (main): If dumped.elc isn't found, exit with an error
code.
(syms_of_emacs): Define Qcondition_case.
---
src/emacs.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/emacs.c b/src/emacs.c
index bc5d4bc..8f461fe 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1674,8 +1674,19 @@ Using an Emacs configured with --with-x-toolkit=lucid
does not have this problem
Vtop_level = list2 (Qload, build_unibyte_string (file));
}
else if (! no_loadup)
- /* Unless next switch is -nl, load "loadup.el" first thing. */
- Vtop_level = list2 (Qload, build_string ("../src/dumped.elc"));
+ /* Unless next switch is -nl, load "dumped.elc" first thing.
+ If it fails, we won't be able to run. */
+ {
+ Lisp_Object load = list2 (Qload, build_string ("../src/dumped.elc"));
+ /* XXX We need a way for Lisp to cause Emacs to exit, with
+ an error message to stderr after restoring tty modes. */
+ /* (condition-case nil bodyform (file-missing (kill-emacs 42))) */
+ Vtop_level = list4 (Qcondition_case,
+ Qnil,
+ load,
+ list2 (Qfile_missing,
+ list2 (Qkill_emacs, make_number (42))));
+ }
}
/* Set up for profiling. This is known to work on FreeBSD,
@@ -2506,6 +2517,7 @@ syms_of_emacs (void)
DEFSYM (Qrisky_local_variable, "risky-local-variable");
DEFSYM (Qkill_emacs, "kill-emacs");
DEFSYM (Qkill_emacs_hook, "kill-emacs-hook");
+ DEFSYM (Qcondition_case, "condition-case");
#ifndef CANNOT_DUMP
defsubr (&Sdump_emacs);
- [Emacs-diffs] branch scratch/raeburn-startup created (now 13f3370), Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 1c4b68d 03/43: Force purification off when using dumped.elc., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup bd42a5a 02/43: Increase gc-cons-threshold., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 250c9ad 04/43: Don't get into an error loop if dumped.elc isn't found.,
Ken Raeburn <=
- [Emacs-diffs] scratch/raeburn-startup 1184a17 08/43: Don't dump a copy of the obarray., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 8ec5f5a 11/43: Don't trash current-load-list while loading dumped.elc., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 19efb25 09/43: Use #N# syntax for repeated symbols in dumped.elc., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 4a6ef22 12/43: Save and restore default values, and buffer-local setting., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup d85d26b 10/43: Eli's test patch to stop using dump-emacs., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup e7fcd8a 14/43: Reload category table at startup rather than saving it., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 406bfc4 15/43: Call unify-charset on appropriate charsets., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup ee0638c 18/43: Create frame's face cache., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup 7414991 01/43: Stefan's patch to write out and load "dumped.elc"; Oct 31 version., Ken Raeburn, 2017/07/31
- [Emacs-diffs] scratch/raeburn-startup fd03b6b 07/43: Dump defvars for special variables only., Ken Raeburn, 2017/07/31