]> code.delx.au - gnu-emacs/blobdiff - lisp/bookmark.el
Merge from mainline.
[gnu-emacs] / lisp / bookmark.el
index 503264f4b32547a16b56467f15c02da44f8d04af..d3db54c81d4aa4da3de5eed0df4b82911e25d2f4 100644 (file)
@@ -1473,6 +1473,43 @@ method buffers use to resolve name collisions."
 (defvar bookmark-bmenu-hidden-bookmarks ())
 
 
+(defvar bookmark-bmenu-mode-map
+  (let ((map (make-keymap)))
+    (set-keymap-parent map special-mode-map)
+    (define-key map "v" 'bookmark-bmenu-select)
+    (define-key map "w" 'bookmark-bmenu-locate)
+    (define-key map "2" 'bookmark-bmenu-2-window)
+    (define-key map "1" 'bookmark-bmenu-1-window)
+    (define-key map "j" 'bookmark-bmenu-this-window)
+    (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window)
+    (define-key map "f" 'bookmark-bmenu-this-window)
+    (define-key map "\C-m" 'bookmark-bmenu-this-window)
+    (define-key map "o" 'bookmark-bmenu-other-window)
+    (define-key map "\C-o" 'bookmark-bmenu-switch-other-window)
+    (define-key map "s" 'bookmark-bmenu-save)
+    (define-key map "k" 'bookmark-bmenu-delete)
+    (define-key map "\C-d" 'bookmark-bmenu-delete-backwards)
+    (define-key map "x" 'bookmark-bmenu-execute-deletions)
+    (define-key map "d" 'bookmark-bmenu-delete)
+    (define-key map " " 'next-line)
+    (define-key map "n" 'next-line)
+    (define-key map "p" 'previous-line)
+    (define-key map "\177" 'bookmark-bmenu-backup-unmark)
+    (define-key map "u" 'bookmark-bmenu-unmark)
+    (define-key map "m" 'bookmark-bmenu-mark)
+    (define-key map "l" 'bookmark-bmenu-load)
+    (define-key map "r" 'bookmark-bmenu-rename)
+    (define-key map "R" 'bookmark-bmenu-relocate)
+    (define-key map "t" 'bookmark-bmenu-toggle-filenames)
+    (define-key map "a" 'bookmark-bmenu-show-annotation)
+    (define-key map "A" 'bookmark-bmenu-show-all-annotations)
+    (define-key map "e" 'bookmark-bmenu-edit-annotation)
+    ;; The original binding of M-g hides the M-g prefix map.
+    ;; If someone has a better idea than M-g s, I'm open to suggestions.
+    (define-key map [?\M-g ?s] 'bookmark-bmenu-search)
+    (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
+    map))
+
 ;; Bookmark Buffer Menu mode is suitable only for specially formatted
 ;; data.
 (put 'bookmark-bmenu-mode 'mode-class 'special)
@@ -1583,39 +1620,6 @@ Bookmark names preceded by a \"*\" have annotations.
   (setq truncate-lines t)
   (setq buffer-read-only t))
 
-(define-key bookmark-bmenu-mode-map "q" 'quit-window)
-(define-key bookmark-bmenu-mode-map "v" 'bookmark-bmenu-select)
-(define-key bookmark-bmenu-mode-map "w" 'bookmark-bmenu-locate)
-(define-key bookmark-bmenu-mode-map "2" 'bookmark-bmenu-2-window)
-(define-key bookmark-bmenu-mode-map "1" 'bookmark-bmenu-1-window)
-(define-key bookmark-bmenu-mode-map "j" 'bookmark-bmenu-this-window)
-(define-key bookmark-bmenu-mode-map "\C-c\C-c" 'bookmark-bmenu-this-window)
-(define-key bookmark-bmenu-mode-map "f" 'bookmark-bmenu-this-window)
-(define-key bookmark-bmenu-mode-map "\C-m" 'bookmark-bmenu-this-window)
-(define-key bookmark-bmenu-mode-map "o" 'bookmark-bmenu-other-window)
-(define-key bookmark-bmenu-mode-map "\C-o" 'bookmark-bmenu-switch-other-window)
-(define-key bookmark-bmenu-mode-map "s" 'bookmark-bmenu-save)
-(define-key bookmark-bmenu-mode-map "k" 'bookmark-bmenu-delete)
-(define-key bookmark-bmenu-mode-map "\C-d" 'bookmark-bmenu-delete-backwards)
-(define-key bookmark-bmenu-mode-map "x" 'bookmark-bmenu-execute-deletions)
-(define-key bookmark-bmenu-mode-map "d" 'bookmark-bmenu-delete)
-(define-key bookmark-bmenu-mode-map " " 'next-line)
-(define-key bookmark-bmenu-mode-map "n" 'next-line)
-(define-key bookmark-bmenu-mode-map "p" 'previous-line)
-(define-key bookmark-bmenu-mode-map "\177" 'bookmark-bmenu-backup-unmark)
-(define-key bookmark-bmenu-mode-map "?" 'describe-mode)
-(define-key bookmark-bmenu-mode-map "u" 'bookmark-bmenu-unmark)
-(define-key bookmark-bmenu-mode-map "m" 'bookmark-bmenu-mark)
-(define-key bookmark-bmenu-mode-map "l" 'bookmark-bmenu-load)
-(define-key bookmark-bmenu-mode-map "r" 'bookmark-bmenu-rename)
-(define-key bookmark-bmenu-mode-map "R" 'bookmark-bmenu-relocate)
-(define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames)
-(define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation)
-(define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations)
-(define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation)
-;; The original binding of M-g hides the M-g prefix map.
-;; If someone has a better idea than M-g s, I'm open to suggestions.
-(define-key bookmark-bmenu-mode-map [?\M-g ?s] 'bookmark-bmenu-search)(define-key bookmark-bmenu-mode-map [mouse-2] 'bookmark-bmenu-other-window-with-mouse)
 
 (defun bookmark-bmenu-toggle-filenames (&optional show)
   "Toggle whether filenames are shown in the bookmark list.
@@ -2177,7 +2181,8 @@ This also runs `bookmark-exit-hook'."
        (bookmark-time-to-save-p t)
        (bookmark-save)))
 
-(add-hook 'kill-emacs-hook 'bookmark-exit-hook-internal)
+(unless noninteractive
+  (add-hook 'kill-emacs-hook 'bookmark-exit-hook-internal))
 
 (defun bookmark-unload-function ()
   "Unload the Bookmark library."