[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Erc-commit] [commit][emacs22] erc-log: Save buffers to logs before exit
From: |
mwolson |
Subject: |
[Erc-commit] [commit][emacs22] erc-log: Save buffers to logs before exiting Emacs |
Date: |
Sun, 14 Oct 2007 00:48:32 -0400 |
commit c9e946d857d70da25bbfa35bc38945ede3b80931
Author: Michael Olson <address@hidden>
Date: Sun Nov 12 05:34:58 2006 +0000
erc-log: Save buffers to logs before exiting Emacs
2006-11-12 Michael Olson <address@hidden>
* erc-log.el: Save all log buffers when Emacs exits, in case
someone ignores the warning about open processes. Remove the
advice code in the commentary.
(erc-save-query-buffers): Docfix.
(erc-log-save-all-buffers): New function that saves all ERC
buffers to logs.
(erc-current-logfile): Fix bug in filename selection, where the
current buffer was erroneously being preferred over the given
buffer.
git-archimport-id: address@hidden/erc--main--0--patch-59
diff --git a/ChangeLog b/ChangeLog
index b79043d..e665922 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2006-11-12 Michael Olson <address@hidden>
+
+ * erc-log.el: Save all log buffers when Emacs exits, in case
+ someone ignores the warning about open processes. Remove the
+ advice code in the commentary.
+ (erc-save-query-buffers): Docfix.
+ (erc-log-save-all-buffers): New function that saves all ERC
+ buffers to logs.
+ (erc-current-logfile): Fix bug in filename selection, where the
+ current buffer was erroneously being preferred over the given
+ buffer.
+
2006-11-08 Michael Olson <address@hidden>
* erc.el (erc-string-to-port): Avoid error when a numerical port
diff --git a/erc-log.el b/erc-log.el
index 0124219..e548645 100644
--- a/erc-log.el
+++ b/erc-log.el
@@ -43,14 +43,6 @@
;;
;; (require 'erc-log)
;;
-;; You may optionally want the following code, to save all ERC buffers
-;; without confirmation when exiting emacs:
-;;
-;; (defadvice save-buffers-kill-emacs (before save-logs (&rest args) activate)
-;; (save-some-buffers t (lambda ()
-;; (when (and (eq major-mode 'erc-mode)
-;; (not (null buffer-file-name))) t))))
-;;
;; If you only want to save logs for some buffers, customise the
;; variable `erc-enable-logging'.
@@ -213,6 +205,7 @@ also be a predicate function. To only log when you are not
set away, use:
(add-hook 'erc-send-post-hook 'erc-save-buffer-in-logs))
(add-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
(add-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
+ (add-hook 'kill-emacs-hook 'erc-log-save-all-buffers)
(add-hook 'erc-quit-hook 'erc-conditional-save-queries)
(add-hook 'erc-part-hook 'erc-conditional-save-buffer)
;; append, so that 'erc-initialize-log-marker runs first
@@ -224,6 +217,7 @@ also be a predicate function. To only log when you are not
set away, use:
(remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-kill-buffer-hook 'erc-save-buffer-in-logs)
(remove-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs)
+ (remove-hook 'kill-emacs-hook 'erc-log-save-all-buffers)
(remove-hook 'erc-quit-hook 'erc-conditional-save-queries)
(remove-hook 'erc-part-hook 'erc-conditional-save-buffer)
(remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging)
@@ -270,7 +264,7 @@ Returns nil iff `erc-server-buffer-p' returns t."
(not (erc-server-buffer-p)))))
(defun erc-save-query-buffers (process)
- "Save all buffers process."
+ "Save all buffers of the given PROCESS."
(erc-with-all-buffers-of-server process
nil
(erc-save-buffer-in-logs)))
@@ -285,6 +279,13 @@ Returns nil iff `erc-server-buffer-p' returns t."
(when erc-save-queries-on-quit
(erc-save-query-buffers process)))
+;; Make sure that logs get saved, even if someone overrides the active
+;; process prompt for a quick exit from Emacs
+(defun erc-log-save-all-buffers ()
+ (dolist (buffer (erc-buffer-filter #'(lambda ()
+ (not (erc-server-buffer-p)))))
+ (erc-save-buffer-in-logs buffer)))
+
;;;###autoload
(defun erc-logging-enabled (&optional buffer)
"Return non-nil if logging is enabled for BUFFER.
@@ -316,7 +317,7 @@ The result is converted to lowercase, as IRC is
case-insensitive"
(erc-log-standardize-name
(funcall erc-generate-log-file-name-function
(or buffer (current-buffer))
- (or (erc-default-target) (buffer-name buffer))
+ (or (buffer-name buffer) (erc-default-target))
(erc-current-nick)
erc-session-server erc-session-port))
erc-log-channels-directory))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Erc-commit] [commit][emacs22] erc-log: Save buffers to logs before exiting Emacs,
mwolson <=