# HG changeset patch # User Miles Bader # Date 1216018578 0 # Node ID 0b339c48424cfdd74ad1401d5ed925565dac9aa1 # Parent 5c9cdf4e586ad8bc3b734e285cc1e04a77c650eb Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1326 diff -r 5c9cdf4e586a -r 0b339c48424c lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Mon Jul 14 04:47:19 2008 +0000 +++ b/lisp/gnus/ChangeLog Mon Jul 14 06:56:18 2008 +0000 @@ -1,3 +1,11 @@ +2008-07-10 Katsumi Yamaoka + + * gnus-art.el (gnus-article-save): Ignore gnus-visible-headers that is + set as a group parameter. + (gnus-summary-save-in-pipe): Work when it is called independently. + (gnus-summary-pipe-to-muttprint): Don't modify + gnus-summary-pipe-output-default-command. + 2008-07-10 Stefan Monnier * message.el (message-send-mail-with-sendmail): diff -r 5c9cdf4e586a -r 0b339c48424c lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Mon Jul 14 04:47:19 2008 +0000 +++ b/lisp/gnus/gnus-art.el Mon Jul 14 06:56:18 2008 +0000 @@ -3715,7 +3715,8 @@ (let ((gnus-visible-headers (or (symbol-value (get gnus-default-article-saver :headers)) gnus-saved-headers gnus-visible-headers)) - (gnus-article-buffer save-buffer)) + ;; Ignore group parameter. See `article-hide-headers'. + (gnus-summary-buffer nil)) (with-current-buffer save-buffer (article-hide-headers 1 t)))) (save-window-excursion @@ -3943,8 +3944,43 @@ (put 'gnus-summary-save-in-pipe :headers 'gnus-saved-headers) (defun gnus-summary-save-in-pipe (&optional command) "Pipe this article to subprocess." - (let ((default (or gnus-summary-pipe-output-default-command + (let ((save-buffer gnus-save-article-buffer) + (default (or gnus-summary-pipe-output-default-command gnus-last-shell-command))) + ;; `gnus-save-article-buffer' should be a buffer containing the article + ;; contents if this function is called by way of the command + ;; `gnus-summary-pipe-output'. OTOH, that the buffer does not exist + ;; means this function is called independently. + (unless (gnus-buffer-live-p save-buffer) + (let ((article (gnus-summary-article-number)) + (decode (get 'gnus-summary-save-in-pipe :decode))) + (if article + (if (vectorp (gnus-summary-article-header article)) + (save-window-excursion + (let ((gnus-display-mime-function + (when decode + gnus-display-mime-function)) + (gnus-article-prepare-hook + (when decode + gnus-article-prepare-hook))) + (gnus-summary-select-article t t nil article) + (gnus-summary-goto-subject article)) + (insert-buffer-substring + (prog1 + (if decode + gnus-article-buffer + gnus-original-article-buffer) + (setq save-buffer + (nnheader-set-temp-buffer " *Gnus Save*")))) + ;; Remove unwanted headers. + (let ((gnus-visible-headers + (or (symbol-value (get gnus-default-article-saver + :headers)) + gnus-saved-headers gnus-visible-headers)) + (gnus-summary-buffer nil)) + (article-hide-headers 1 t))) + (error "%d is not a real article" article)) + (error "No article to pipe")))) (unless (stringp command) (setq command (if (and (eq command 'default) default) @@ -3961,21 +3997,24 @@ (when (string-equal command "") (if default (setq command default) - (error "A command is required")))) - (gnus-eval-in-buffer-window gnus-save-article-buffer - (save-restriction - (widen) - (shell-command-on-region (point-min) (point-max) command nil))) + (error "A command is required"))) + (gnus-eval-in-buffer-window save-buffer + (save-restriction + (widen) + (shell-command-on-region (point-min) (point-max) command nil))) + (gnus-kill-buffer save-buffer)) (setq gnus-summary-pipe-output-default-command command)) (defun gnus-summary-pipe-to-muttprint (&optional command) "Pipe this article to muttprint." - (setq command (read-string - "Print using command: " gnus-summary-muttprint-program - nil gnus-summary-muttprint-program)) - (let ((gnus-last-shell-command gnus-last-shell-command)) - (gnus-summary-save-in-pipe command) - (setq gnus-summary-muttprint-program gnus-last-shell-command))) + (unless (stringp command) + (setq command (read-string + "Print using command: " gnus-summary-muttprint-program + nil gnus-summary-muttprint-program))) + (let ((gnus-summary-pipe-output-default-command + gnus-summary-pipe-output-default-command)) + (gnus-summary-save-in-pipe command)) + (setq gnus-summary-muttprint-program command)) ;;; Article file names when saving.