Function: gnus-execute-1

gnus-execute-1 is a byte-compiled function defined in gnus-kill.el.gz.

Signature

(gnus-execute-1 FUNCTION REGEXP FORM HEADER)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-kill.el.gz
(defun gnus-execute-1 (function regexp form header)
  (save-excursion
    (let (did-kill)
      (if (null header)
	  nil				;Nothing to do.
	(if function
	    ;; Compare with header field.
	    (let (value)
	      (and header
		   (progn
		     (setq value (funcall function header))
		     ;; Number (Lines:) or symbol must be converted to string.
		     (unless (stringp value)
		       (setq value (gnus-prin1-to-string value)))
		     (setq did-kill (string-match regexp value)))
		   (cond ((stringp form) ;Keyboard macro.
			  (execute-kbd-macro form))
			 ((functionp form)
			  (funcall form))
			 (t
			  (eval form t)))))
	  ;; Search article body.
	  (let ((gnus-current-article nil) ;Save article pointer.
		(gnus-last-article nil)
		(gnus-break-pages nil)	;No need to break pages.
		(gnus-mark-article-hook nil)) ;Inhibit marking as read.
	    (gnus-message
	     6 "Searching for article: %d..." (mail-header-number header))
	    (gnus-article-setup-buffer)
	    (gnus-article-prepare (mail-header-number header) t)
	    (when (with-current-buffer gnus-article-buffer
		    (goto-char (point-min))
		    (setq did-kill (re-search-forward regexp nil t)))
	      (cond ((stringp form)	;Keyboard macro.
		     (execute-kbd-macro form))
		    ((functionp form)
		     (funcall form))
		    (t
		     (eval form t)))))))
      did-kill)))