]> git.eshelyaron.com Git - emacs.git/commitdiff
* bookmark.el: Provide a generic exit hook, as suggested by Ovidiu
authorKarl Fogel <kfogel@red-bean.com>
Wed, 13 Dec 2000 22:56:38 +0000 (22:56 +0000)
committerKarl Fogel <kfogel@red-bean.com>
Wed, 13 Dec 2000 22:56:38 +0000 (22:56 +0000)
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.

lisp/ChangeLog
lisp/bookmark.el

index 3e028b60e43ceb9adc8a0d9eff8b21ab6d9e0aa6..72693deffd3dcc87fcbaa320297890764dcfdfdc 100644 (file)
@@ -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.
index 1aaefcba15a14d4fa933400b73c7c2272a456c7a..31bd50a2bc65757c597c3dce0d0000aa526cc258 100644 (file)
@@ -300,16 +300,6 @@ So the cdr of each bookmark is an alist too.
 (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 @@ corresponding bookmark function from Lisp \(the one without the
 (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)