Function: gnus-score-find-favorite-words

gnus-score-find-favorite-words is an interactive and byte-compiled function defined in gnus-score.el.gz.

Signature

(gnus-score-find-favorite-words)

Documentation

List words used in scoring.

Probably introduced at or before Emacs version 27.1.

Key Bindings

Aliases

gnus-score-find-favourite-words (obsolete since 27.1)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-score.el.gz
(defun gnus-score-find-favorite-words ()
  "List words used in scoring."
  (interactive)
  (let ((alists (gnus-score-load-files (gnus-all-score-files)))
	alist rule rules kill)
    ;; Go through all the score alists for this group
    ;; and find all `w' rules.
    (while (setq alist (pop alists))
      (while (setq rule (pop alist))
	(when (and (stringp (car rule))
		   (equal "subject" (downcase (pop rule))))
	  (while (setq kill (pop rule))
	    (when (memq (nth 3 kill) '(w W word Word))
	      (push (cons (or (nth 1 kill)
			      gnus-score-interactive-default-score)
			  (car kill))
		    rules))))))
    (setq rules (sort rules (lambda (r1 r2)
			      (string-lessp (cdr r1) (cdr r2)))))
    ;; Add up words that have appeared several times.
    (let ((r rules))
      (while (cdr r)
	(if (equal (cdar r) (cdadr r))
	    (progn
	      (setcar (car r) (+ (caar r) (caadr r)))
	      (setcdr r (cddr r)))
	  (pop r))))
    ;; Insert the words.
    (nnheader-set-temp-buffer "*Score Words*")
    (if (not (setq rules (sort rules (lambda (r1 r2) (> (car r1) (car r2))))))
	(gnus-error 3 "No word score rules")
      (while rules
	(insert (format "%-5d: %s\n" (caar rules) (cdar rules)))
	(pop rules))
      (goto-char (point-min))
      (gnus-configure-windows 'score-words))))