Function: gnus-summary-insert-pseudos
gnus-summary-insert-pseudos is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-summary-insert-pseudos PSLIST &optional NOT-VIEW)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
;; Summary extract commands
(defun gnus-summary-insert-pseudos (pslist &optional not-view)
(let ((inhibit-read-only t)
(article (gnus-summary-article-number))
after-article b e)
(unless (gnus-summary-goto-subject article)
(error "No such article: %d" article))
(gnus-summary-position-point)
;; If all commands are to be bunched up on one line, we collect
;; them here.
(unless gnus-view-pseudos-separately
(let ((ps (setq pslist (sort pslist #'gnus-pseudos<)))
files action)
(while ps
(setq action (cdr (assq 'action (car ps))))
(setq files (list (cdr (assq 'name (car ps)))))
(while (and ps (cdr ps)
(string= (or action "1")
(or (cdr (assq 'action (cadr ps))) "2")))
(push (cdr (assq 'name (cadr ps))) files)
(setcdr ps (cddr ps)))
(when files
(when (not (string-match "%s" action))
(push " " files))
(push " " files)
(when (assq 'execute (car ps))
(setcdr (assq 'execute (car ps))
(funcall (if (string-match "%s" action)
#'format #'concat)
action
(mapconcat
(lambda (f)
(if (equal f " ")
f
(shell-quote-argument f)))
files " ")))))
(setq ps (cdr ps)))))
(if (and gnus-view-pseudos (not not-view))
(while pslist
(when (assq 'execute (car pslist))
(gnus-execute-command (cdr (assq 'execute (car pslist)))
(eq gnus-view-pseudos 'not-confirm)))
(setq pslist (cdr pslist)))
(save-excursion
(while pslist
(setq after-article (or (cdr (assq 'article (car pslist)))
(gnus-summary-article-number)))
(gnus-summary-goto-subject after-article)
(forward-line 1)
(setq b (point))
(insert " " (file-name-nondirectory
(cdr (assq 'name (car pslist))))
": " (or (cdr (assq 'execute (car pslist))) "") "\n")
(setq e (point))
(forward-line -1) ; back to `b'
(add-text-properties
b (1- e) (list 'gnus-number gnus-reffed-article-number
'mouse-face gnus-mouse-face))
(gnus-data-enter
after-article gnus-reffed-article-number
gnus-unread-mark b (car pslist) 0 (- e b))
(setq gnus-newsgroup-unreads
(gnus-add-to-sorted-list gnus-newsgroup-unreads
gnus-reffed-article-number))
(setq gnus-reffed-article-number (1- gnus-reffed-article-number))
(setq pslist (cdr pslist)))))))