changeset 34529:8e38e93616a7

* bookmark.el: Provide a generic exit hook, as suggested by Ovidiu Predescu <ovidiu@cup.hp.com>: (bookmark-exit-hook): new var. (bookmark-exit-hook-internal): new func, replaces old raw lambda form in `kill-emacs-hook', and runs new `bookmark-exit-hooks'. No longer tests for the bookmark feature, as logically that feature must have been provided if this function is running. Removed ;;;###autoload before the `add-hook' call.
author Karl Fogel <kfogel@red-bean.com>
date Wed, 13 Dec 2000 22:56:38 +0000
parents add308ec5e6e
children 8739ed222334
files lisp/ChangeLog lisp/bookmark.el
diffstat 2 files changed, 28 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Dec 13 22:27:23 2000 +0000
+++ b/lisp/ChangeLog	Wed Dec 13 22:56:38 2000 +0000
@@ -1,3 +1,15 @@
+2000-12-13  Karl Fogel  <kfogel@red-bean.com>
+
+	* bookmark.el: Provide a generic exit hook, as suggested by
+	Ovidiu Predescu <ovidiu@cup.hp.com>:
+	(bookmark-exit-hook): new var.
+	(bookmark-exit-hook-internal): new func, replaces
+	old raw lambda form in `kill-emacs-hook', and runs new
+	`bookmark-exit-hooks'.  No longer tests for the bookmark feature,
+	as logically that feature must have been provided if this function
+	is running.
+	Removed ;;;###autoload before the `add-hook' call.
+
 2000-12-13  Stefan Monnier  <monnier@cs.yale.edu>
 
 	* emacs-lisp/easymenu.el (easy-menu-define): Setup indentation.
--- a/lisp/bookmark.el	Wed Dec 13 22:27:23 2000 +0000
+++ b/lisp/bookmark.el	Wed Dec 13 22:56:38 2000 +0000
@@ -300,16 +300,6 @@
 (defvar bookmarks-already-loaded nil)
 
 
-;; just add the hook to make sure that people don't lose bookmarks
-;; when they kill Emacs, unless they don't want to save them.
-;;;###autoload
-(add-hook 'kill-emacs-hook
-          (function
-           (lambda () (and (featurep 'bookmark)
-                           bookmark-alist
-                           (bookmark-time-to-save-p t)
-                           (bookmark-save)))))
-
 ;; more stuff added by db.
 
 (defvar bookmark-current-bookmark nil 
@@ -2269,6 +2259,22 @@
 (defvar bookmark-load-hook nil
   "Hook to run at the end of loading bookmark.")
 
+;;; Exit Hook, called from kill-emacs-hook
+(defvar bookmark-exit-hook nil
+  "Hook to run when emacs exits")
+     
+(defun bookmark-exit-hook-internal ()
+  "Save bookmark state, if necessary, at Emacs exit time.
+This also runs `bookmark-exit-hooks'."
+  (and
+   (progn (run-hooks 'bookmark-exit-hooks) t)
+   bookmark-alist
+   (bookmark-time-to-save-p t)
+   (bookmark-save)))
+
+(add-hook 'kill-emacs-hook 'bookmark-exit-hook-internal)
+
+
 (run-hooks 'bookmark-load-hook)
 
 (provide 'bookmark)