Function: gnus-summary-save-in-pipe
gnus-summary-save-in-pipe is a byte-compiled function defined in
gnus-art.el.gz.
Signature
(gnus-summary-save-in-pipe &optional COMMAND RAW)
Documentation
Pipe this article to subprocess COMMAND.
Valid values for COMMAND include:
a string
The executable command name and possibly arguments.
nil
You will be prompted for the command in the minibuffer.
the symbol default
It will be replaced with the command which the variable
gnus-summary-pipe-output-default-command holds or the command
last used for saving.
Non-nil value for RAW overrides :decode and :headers properties
and the raw article including all headers will be piped.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-summary-save-in-pipe (&optional command raw)
"Pipe this article to subprocess COMMAND.
Valid values for COMMAND include:
a string
The executable command name and possibly arguments.
nil
You will be prompted for the command in the minibuffer.
the symbol `default'
It will be replaced with the command which the variable
`gnus-summary-pipe-output-default-command' holds or the command
last used for saving.
Non-nil value for RAW overrides `:decode' and `:headers' properties
and the raw article including all headers will be piped."
(let ((article (gnus-summary-article-number))
(decode (unless raw
(get 'gnus-summary-save-in-pipe :decode)))
save-buffer default)
(if article
(if (mail-header-p (gnus-summary-article-header article))
(save-current-buffer
(gnus-summary-select-article decode decode nil 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.
(when (and (not raw)
(or (get 'gnus-summary-save-in-pipe :headers)
(not gnus-save-all-headers)))
(let ((gnus-visible-headers
(or (symbol-value (get 'gnus-summary-save-in-pipe
: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"))
(setq default (or gnus-summary-pipe-output-default-command
gnus-last-shell-command))
(unless (stringp command)
(setq command
(if (and (eq command 'default) default)
default
(read-shell-command "Shell command on this article: " default))))
(when (string-equal command "")
(if default
(setq command default)
(error "A command is required")))
(with-current-buffer 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))