[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r101722: Run kill-emacs-hook in batch
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r101722: Run kill-emacs-hook in batch mode, and on SIGINT in batch mode. |
Date: |
Fri, 01 Oct 2010 19:30:11 -0700 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 101722
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Fri 2010-10-01 19:30:11 -0700
message:
Run kill-emacs-hook in batch mode, and on SIGINT in batch mode.
See thread http://lists.gnu.org/archive/html/emacs-devel/2010-09/msg00795.html
* src/emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT.
(main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal
in batch-mode.
(Fkill_emacs): Doc fix. Also run the hook in batch mode.
(kill-emacs-hook): Doc fix.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Use kill-emacs-hook to
delete tempfile if interrupted during compilation.
* doc/lispref/os.texi (Killing Emacs): Hook now runs in batch mode.
* etc/NEWS: Mention these changes.
modified:
doc/lispref/ChangeLog
doc/lispref/os.texi
etc/NEWS
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el
src/ChangeLog
src/emacs.c
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog 2010-09-18 15:50:06 +0000
+++ b/doc/lispref/ChangeLog 2010-10-02 02:30:11 +0000
@@ -1,3 +1,7 @@
+2010-10-02 Glenn Morris <address@hidden>
+
+ * os.texi (Killing Emacs): Hook now runs in batch mode.
+
2010-09-18 Stefan Monnier <address@hidden>
* text.texi (Special Properties): Clarify when modification-hooks run.
=== modified file 'doc/lispref/os.texi'
--- a/doc/lispref/os.texi 2010-08-25 20:25:32 +0000
+++ b/doc/lispref/os.texi 2010-10-02 02:30:11 +0000
@@ -577,7 +577,6 @@
This variable is a normal hook; once @code{save-buffers-kill-emacs} is
finished with all file saving and confirmation, it calls
@code{kill-emacs} which runs the functions in this hook.
address@hidden does not run this hook in batch mode.
@code{kill-emacs} may be invoked directly (that is not via
@code{save-buffers-kill-emacs}) if the terminal is disconnected, or in
=== modified file 'etc/NEWS'
--- a/etc/NEWS 2010-09-30 02:23:25 +0000
+++ b/etc/NEWS 2010-10-02 02:30:11 +0000
@@ -149,6 +149,11 @@
*** Tramp offers handlers for file-selinux-context and set-file-selinux-context
for remote machines which support SELinux.
+** The function kill-emacs is now run upon receipt of the signals SIGTERM
+and SIGHUP, and (except on MS-Windows) SIGINT in batch mode.
+
+** kill-emacs-hook is now also run in batch mode.
+
** New scrolling commands `scroll-up-command' and `scroll-down-command'
(bound to C-v/[next] and M-v/[prior]) does not signal errors at top/bottom
of buffer at first key-press (instead moves to top/bottom of buffer)
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-10-01 12:56:44 +0000
+++ b/lisp/ChangeLog 2010-10-02 02:30:11 +0000
@@ -1,3 +1,8 @@
+2010-10-02 Glenn Morris <address@hidden>
+
+ * emacs-lisp/bytecomp.el (byte-compile-file): Use kill-emacs-hook to
+ delete tempfile if interrupted during compilation.
+
2010-10-01 Lars Magne Ingebrigtsen <address@hidden>
* net/tls.el (tls-starttls-switches): Give up on using starttls with
=== modified file 'lisp/emacs-lisp/bytecomp.el'
--- a/lisp/emacs-lisp/bytecomp.el 2010-09-23 07:55:01 +0000
+++ b/lisp/emacs-lisp/bytecomp.el 2010-10-02 02:30:11 +0000
@@ -1698,12 +1698,15 @@
(insert "\n") ; aaah, unix.
(if (file-writable-p target-file)
;; We must disable any code conversion here.
- (let ((coding-system-for-write 'no-conversion)
- ;; Write to a tempfile so that if another Emacs
- ;; process is trying to load target-file (eg in a
- ;; parallel bootstrap), it does not risk getting a
- ;; half-finished file. (Bug#4196)
- (tempfile (make-temp-name target-file)))
+ (let* ((coding-system-for-write 'no-conversion)
+ ;; Write to a tempfile so that if another Emacs
+ ;; process is trying to load target-file (eg in a
+ ;; parallel bootstrap), it does not risk getting a
+ ;; half-finished file. (Bug#4196)
+ (tempfile (make-temp-name target-file))
+ (kill-emacs-hook
+ (cons (lambda () (ignore-errors (delete-file tempfile)))
+ kill-emacs-hook)))
(if (memq system-type '(ms-dos 'windows-nt))
(setq buffer-file-type t))
(write-region (point-min) (point-max) tempfile nil 1)
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-10-02 00:36:47 +0000
+++ b/src/ChangeLog 2010-10-02 02:30:11 +0000
@@ -1,3 +1,11 @@
+2010-10-02 Glenn Morris <address@hidden>
+
+ * emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT.
+ (main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal
+ in batch-mode.
+ (Fkill_emacs): Doc fix. Also run the hook in batch mode.
+ (kill-emacs-hook): Doc fix.
+
2010-10-02 Lars Magne Ingebrigtsen <address@hidden>
* xml.c (Flibxml_parse_xml_region, Flibxml_parse_html_region)
=== modified file 'src/emacs.c'
--- a/src/emacs.c 2010-09-26 06:06:28 +0000
+++ b/src/emacs.c 2010-10-02 02:30:11 +0000
@@ -378,7 +378,7 @@
{
fatal_error_in_progress = 1;
- if (sig == SIGTERM || sig == SIGHUP)
+ if (sig == SIGTERM || sig == SIGHUP || sig == SIGINT)
Fkill_emacs (make_number (sig));
shut_down_emacs (sig, 0, Qnil);
@@ -1240,6 +1240,14 @@
#ifdef SIGSYS
signal (SIGSYS, fatal_error_signal);
#endif
+#ifndef WINDOWSNT
+ /* May need special treatment on MS-Windows. See
+ http://lists.gnu.org/archive/html/emacs-devel/2010-09/msg01062.html
+ Please update the doc of kill-emacs, kill-emacs-hook, and
+ NEWS if you change this.
+ */
+ if ( noninteractive ) signal (SIGINT, fatal_error_signal);
+#endif
signal (SIGTERM, fatal_error_signal);
#ifdef SIGXCPU
signal (SIGXCPU, fatal_error_signal);
@@ -1988,6 +1996,9 @@
If ARG is an integer, return ARG as the exit program code.
If ARG is a string, stuff it as keyboard input.
+This function is called upon receipt of the signals SIGTERM
+or SIGHUP, and (except on MS-Windows) SIGINT in batch mode.
+
The value of `kill-emacs-hook', if not void,
is a list of functions (of no args),
all of which are called before Emacs is actually killed. */)
@@ -2000,7 +2011,7 @@
if (feof (stdin))
arg = Qt;
- if (!NILP (Vrun_hooks) && !noninteractive)
+ if (!NILP (Vrun_hooks))
call1 (Vrun_hooks, intern ("kill-emacs-hook"));
UNGCPRO;
@@ -2421,7 +2432,8 @@
expect to be able to interact with the user. To ask for confirmation,
see `kill-emacs-query-functions' instead.
-The hook is not run in batch mode, i.e., if `noninteractive' is non-nil. */);
+Before Emacs 24.1, the hook was not run in batch mode, i.e., if
+`noninteractive' was non-nil. */);
Vkill_emacs_hook = Qnil;
DEFVAR_INT ("emacs-priority", &emacs_priority,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r101722: Run kill-emacs-hook in batch mode, and on SIGINT in batch mode.,
Glenn Morris <=