Convert consecutive FSF copyright years to ranges.
[gnus] / lisp / gnus-bookmark.el
index 6341c8e..32477c7 100644 (file)
@@ -1,26 +1,25 @@
 ;;; gnus-bookmark.el --- Bookmarks in Gnus
 
-;; Copyright (C) 2006, 2007  Free Software Foundation, Inc.
+;; Copyright (C) 2006-2011
+;;   Free Software Foundation, Inc.
 
 ;; Author: Bastien Guerry <bzg AT altern DOT org>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 ;; (define-key global-map "\C-crj" 'gnus-bookmark-jump)
 ;; (define-key global-map "\C-crl" 'gnus-bookmark-bmenu-list)
 
+;; FIXME: Add keybindings, see
+;; http://thread.gmane.org/gmane.emacs.gnus.general/63101/focus=63379
+;; http://thread.gmane.org/v9fxx9fkm4.fsf@marauder.physik.uni-ulm.de
+
+;; FIXME: Check if `gnus-bookmark.el' should use
+;; `bookmark-make-cell-function'.
+;; Cf. http://article.gmane.org/gmane.emacs.gnus.general/66076
+
 (defgroup gnus-bookmark nil
   "Setting, annotation and jumping to Gnus bookmarks."
   :group 'gnus)
@@ -139,7 +146,7 @@ The default value is \(author subject date group annotation\)."
 (defface gnus-bookmark-menu-heading
   '((t (:inherit font-lock-type-face)))
   "Face used to highlight the heading in Gnus bookmark menu buffers."
-  :version "23.0" ;; No Gnus
+  :version "23.1" ;; No Gnus
   :group 'gnus-bookmark)
 
 (defconst gnus-bookmark-end-of-version-stamp-marker
@@ -150,9 +157,6 @@ The default value is \(author subject date group annotation\)."
   "The current version of the format used by bookmark files.
 You should never need to change this.")
 
-(defvar gnus-bookmark-after-jump-hook nil
-  "Hook run after `gnus-bookmark-jump' jumps to a Gnus bookmark.")
-
 (defvar gnus-bookmark-alist ()
   "Association list of Gnus bookmarks and their records.
 The format of the alist is
@@ -174,8 +178,8 @@ So the cdr of each bookmark is an alist too.")
 (defmacro gnus-bookmark-mouse-available-p ()
   "Return non-nil if a mouse is available."
   (if (featurep 'xemacs)
-      '(and (eq (device-class) 'color) (device-on-window-system-p))
-    '(and (display-color-p) (display-mouse-p))))
+      '(device-on-window-system-p)
+    '(display-mouse-p)))
 
 (defun gnus-bookmark-remove-properties (string)
   "Remove all text properties from STRING."
@@ -207,13 +211,13 @@ So the cdr of each bookmark is an alist too.")
       (setq gnus-bookmark-alist
            (cons
             (list (gnus-bookmark-remove-properties bmk-name)
-                  (gnus-bookmark-make-cell
+                  (gnus-bookmark-make-record
                    group message-id author date subject annotation))
             gnus-bookmark-alist))))
   (gnus-bookmark-bmenu-surreptitiously-rebuild-list)
   (gnus-bookmark-write-file))
 
-(defun gnus-bookmark-make-cell
+(defun gnus-bookmark-make-record
   (group message-id author date subject annotation)
   "Return the record part of a new bookmark, given GROUP MESSAGE-ID AUTHOR DATE SUBJECT and ANNOTATION."
   (let ((the-record
@@ -286,11 +290,11 @@ So the cdr of each bookmark is an alist too.")
   (interactive)
   (gnus-bookmark-maybe-load-default-file)
   (let* ((bookmark (or bmk-name
-         (completing-read "Jump to bookmarked article: "
-                          gnus-bookmark-alist)))
-        (bmk-cell (cadr (assoc bookmark gnus-bookmark-alist)))
-        (group (cdr (assoc 'group bmk-cell)))
-        (message-id (cdr (assoc 'message-id bmk-cell))))
+                       (gnus-completing-read "Jump to bookmarked article"
+                                             (mapcar 'car gnus-bookmark-alist))))
+        (bmk-record (cadr (assoc bookmark gnus-bookmark-alist)))
+        (group (cdr (assoc 'group bmk-record)))
+        (message-id (cdr (assoc 'message-id bmk-record))))
     (when group
       (unless (get-buffer gnus-group-buffer)
        (gnus-no-server))
@@ -535,7 +539,7 @@ Optional argument SHOW means show them unconditionally."
             (let ((bmrk (gnus-bookmark-bmenu-bookmark)))
               (setq gnus-bookmark-bmenu-hidden-bookmarks
                     (cons bmrk gnus-bookmark-bmenu-hidden-bookmarks))
-             (let ((start (save-excursion (end-of-line) (point))))
+             (let ((start (point-at-eol)))
                (move-to-column gnus-bookmark-bmenu-file-column t)
                ;; Strip off `mouse-face' from the white spaces region.
                (if (gnus-bookmark-mouse-available-p)
@@ -569,10 +573,9 @@ Optional argument SHOW means show them unconditionally."
   "Kill from point to end of line.
 If optional arg NEWLINE-TOO is non-nil, delete the newline too.
 Does not affect the kill ring."
-  (let ((eol (save-excursion (end-of-line) (point))))
-    (delete-region (point) eol)
-    (if (and newline-too (looking-at "\n"))
-        (delete-char 1))))
+  (delete-region (point) (point-at-eol))
+  (if (and newline-too (looking-at "\n"))
+      (delete-char 1)))
 
 (defun gnus-bookmark-get-details (bmk-name details-list)
   "Get details for a Gnus BMK-NAME depending on DETAILS-LIST."
@@ -822,5 +825,4 @@ probably because we were called from there."
 
 (provide 'gnus-bookmark)
 
-;; arch-tag: 779df694-366f-46e8-84b2-1d0340e6f525
 ;;; gnus-bookmark.el ends here