* lisp/bookmark.el: Fix deletion of bookmarks.
authorThierry Volpiatto <thierry.volpiatto@gmail.com>
Thu, 4 Apr 2013 01:59:09 +0000 (21:59 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 4 Apr 2013 01:59:09 +0000 (21:59 -0400)
(bookmark-bmenu-list): Don't toggle filenames if alist is empty.
(bookmark-bmenu-execute-deletions): Only skip first line if it's
the header.
(bookmark-exit-hook-internal): Save even if list is empty.

Fixes: debbugs:13972

lisp/ChangeLog
lisp/bookmark.el

index 7801523..d1d4d0d 100644 (file)
@@ -1,3 +1,11 @@
+2013-04-04  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
+
+       * bookmark.el: Fix deletion of bookmarks (bug#13972).
+       (bookmark-bmenu-list): Don't toggle filenames if alist is empty.
+       (bookmark-bmenu-execute-deletions): Only skip first line if it's
+       the header.
+       (bookmark-exit-hook-internal): Save even if list is empty.
+
 2013-04-04  Yann Hodique  <yann.hodique@gmail.com>  (tiny change)
 
        * emacs-lisp/package.el (package-pinned-packages): New var.
index 47e1379..c1d8a4a 100644 (file)
@@ -1582,8 +1582,8 @@ deletion, or > if it is flagged for displaying."
     (if bookmark-bmenu-use-header-line
        (bookmark-bmenu-set-header)
       (forward-line bookmark-bmenu-inline-header-height))
-    (if bookmark-bmenu-toggle-filenames
-        (bookmark-bmenu-toggle-filenames t))))
+    (when (and bookmark-alist bookmark-bmenu-toggle-filenames)
+      (bookmark-bmenu-toggle-filenames t))))
 
 ;;;###autoload
 (defalias 'list-bookmarks 'bookmark-bmenu-list)
@@ -1998,7 +1998,8 @@ To carry out the deletions that you've marked, use \\<bookmark-bmenu-mode-map>\\
                        (progn (end-of-line) (point))))))
         (o-col     (current-column)))
     (goto-char (point-min))
-    (forward-line 1)
+    (unless bookmark-bmenu-use-header-line
+      (forward-line 1))
     (while (re-search-forward "^D" (point-max) t)
       (bookmark-delete (bookmark-bmenu-bookmark) t)) ; pass BATCH arg
     (bookmark-bmenu-list)
@@ -2186,8 +2187,7 @@ strings returned are not."
   "Save bookmark state, if necessary, at Emacs exit time.
 This also runs `bookmark-exit-hook'."
   (run-hooks 'bookmark-exit-hook)
-  (and bookmark-alist
-       (bookmark-time-to-save-p t)
+  (and (bookmark-time-to-save-p t)
        (bookmark-save)))
 
 (unless noninteractive