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))