Kevin Brubeck Unhammer writes: > Toke Høiland-Jørgensen writes: > >> Memnon Anon writes: >> >>> Something like this? >> >> I modified that function a tiny bit to make sure it doesn't throw an >> error if an invalid buffer shows up in the list, and so it doesn't leave >> the article unformatted if it can't find the archive-at header. It now >> looks like this: > > […] > > Note that gnus has this handy macro `gnus-with-article-buffer' that lets > you do away with the whole buffer-list loop: > > #+begin_src emacs-lisp > (defun my-gnus-browse-gwene () > "Start a browser for current gwene article" > (interactive) > (gnus-summary-show-article '(4)) > (let ((url > (gnus-with-article-buffer > (goto-char (point-min)) > (when (re-search-forward "^Archived-at: <\\(.*\\)>$" (point-max) 'noerror) > (match-string 1))))) > (gnus-summary-show-article) > (if url > (browse-url url) > (message "Couldn't find any likely url")))) > #+end_src > > > Of course, if gnus had an even handier macro like > > #+begin_src emacs-lisp > (defmacro gnus-with-raw-article-buffer (&rest forms) > `(progn > (gnus-summary-show-article '(4)) > (prog1 (gnus-with-article-buffer ,@forms) > (gnus-summary-show-article)))) > #+end_src Doh, Reiner Steib found the better solution with gnus-original-article-buffer :-) -- Kevin Brubeck Unhammer GPG: 0x766AC60C