From: Thierry Volpiatto Date: Wed, 14 Jul 2010 16:41:40 +0000 (-0400) Subject: Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975). X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~51^2~50 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8f2eaa8abd8630a6707a0e1d9bca9293497ef915;p=emacs.git Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975). * lisp/bookmark.el (bookmark-set): Don't set `bookmark-yank-point' and `bookmark-current-buffer' if they have been already set in another buffer (e.g gnus-art). * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Set `bookmark-yank-point' and `bookmark-current-buffer' to allow C-w. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a24f7083b72..fcd4bc7ff66 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2010-07-13 Thierry Volpiatto + + Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975). + Patch applied by Karl Fogel. + + * bookmark.el (bookmark-set): Don't set `bookmark-yank-point' + and `bookmark-current-buffer' if they have been already set in + another buffer (e.g gnus-art). + 2010-07-13 Karl Fogel Thierry Volpiatto diff --git a/lisp/bookmark.el b/lisp/bookmark.el index c9e7f824ee3..958997ccfcd 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -783,27 +783,34 @@ Use \\[bookmark-delete] to remove bookmarks (you give it a name and it removes only the first instance of a bookmark with that name from the list of bookmarks.)" (interactive (list nil current-prefix-arg)) - (let* ((record (bookmark-make-record)) - (default (car record))) - - (bookmark-maybe-load-default-file) - - (setq bookmark-yank-point (point)) - (setq bookmark-current-buffer (current-buffer)) - - (let ((str - (or name - (read-from-minibuffer - (format "Set bookmark (%s): " default) - nil - bookmark-minibuffer-read-name-map - nil nil default)))) - (and (string-equal str "") (setq str default)) - (bookmark-store str (cdr record) no-overwrite) - - ;; Ask for an annotation buffer for this bookmark - (when bookmark-use-annotations - (bookmark-edit-annotation str))))) + (unwind-protect + (let* ((record (bookmark-make-record)) + (default (car record))) + + (bookmark-maybe-load-default-file) + ;; Don't set `bookmark-yank-point' and `bookmark-current-buffer' + ;; if they have been already set in another buffer. (e.g gnus-art). + (unless (and bookmark-yank-point + bookmark-current-buffer) + (setq bookmark-yank-point (point)) + (setq bookmark-current-buffer (current-buffer))) + + (let ((str + (or name + (read-from-minibuffer + (format "Set bookmark (%s): " default) + nil + bookmark-minibuffer-read-name-map + nil nil default)))) + (and (string-equal str "") (setq str default)) + (bookmark-store str (cdr record) no-overwrite) + + ;; Ask for an annotation buffer for this bookmark + (when bookmark-use-annotations + (bookmark-edit-annotation str)))) + (setq bookmark-yank-point nil) + (setq bookmark-current-buffer nil))) + (defun bookmark-kill-line (&optional newline-too) "Kill from point to end of line. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index cc2a891ab82..dc3d28ec44d 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,11 @@ +2010-07-13 Thierry Volpiatto + + Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975). + Patch applied by Karl Fogel. + + * gnus-sum.el (gnus-summary-bookmark-make-record): Set + `bookmark-yank-point' and `bookmark-current-buffer' to allow C-w. + 2010-07-13 Thierry Volpiatto Allow bookmarks to be set from Gnus Article buffers (Bug #5975). diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 2b18221b502..0d3559227b6 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -12631,10 +12631,12 @@ If ALL is a number, fetch this number of articles." "Make a bookmark entry for a Gnus summary buffer." (let (pos buf) (unless (and (derived-mode-p 'gnus-summary-mode) gnus-article-current) - (save-restriction ; FIXME is it necessary to widen? + (save-restriction ; FIXME is it necessary to widen? (widen) (setq pos (point))) ; Set position in gnus-article buffer. (setq buf "art") ; We are recording bookmark from article buffer. - (gnus-article-show-summary)) ; Go back in summary buffer. + (setq bookmark-yank-point (point)) + (setq bookmark-current-buffer (current-buffer)) + (gnus-article-show-summary)) ; Go back in summary buffer. ;; We are now recording bookmark from summary buffer. (unless buf (setq buf "sum")) (let* ((subject (elt (gnus-summary-article-header) 1))