# HG changeset patch # User Karl Fogel # Date 1279125700 14400 # Node ID 4e6b8160da4b79fb67968e5cd4837fa8da275f1c # Parent 8b1192833a1ecd9c542460d66b0042dbb77d5688 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 -r 8b1192833a1e -r 4e6b8160da4b lisp/ChangeLog --- a/lisp/ChangeLog Wed Jul 14 12:02:53 2010 -0400 +++ b/lisp/ChangeLog Wed Jul 14 12:41:40 2010 -0400 @@ -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 -r 8b1192833a1e -r 4e6b8160da4b lisp/bookmark.el --- a/lisp/bookmark.el Wed Jul 14 12:02:53 2010 -0400 +++ b/lisp/bookmark.el Wed Jul 14 12:41:40 2010 -0400 @@ -783,27 +783,34 @@ 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))) + (unwind-protect + (let* ((record (bookmark-make-record)) + (default (car record))) - (bookmark-maybe-load-default-file) - - (setq bookmark-yank-point (point)) - (setq bookmark-current-buffer (current-buffer)) + (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) + (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))))) + ;; 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 -r 8b1192833a1e -r 4e6b8160da4b lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Wed Jul 14 12:02:53 2010 -0400 +++ b/lisp/gnus/ChangeLog Wed Jul 14 12:41:40 2010 -0400 @@ -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 -r 8b1192833a1e -r 4e6b8160da4b lisp/gnus/gnus-sum.el --- a/lisp/gnus/gnus-sum.el Wed Jul 14 12:02:53 2010 -0400 +++ b/lisp/gnus/gnus-sum.el Wed Jul 14 12:41:40 2010 -0400 @@ -12631,10 +12631,12 @@ "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))