Function: gnus-make-threads

gnus-make-threads is a byte-compiled function defined in gnus-sum.el.gz.

Signature

(gnus-make-threads)

Documentation

Go through the dependency hashtb and find the roots. Return all threads.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-make-threads ()
  "Go through the dependency hashtb and find the roots.  Return all threads."
  (let (threads)
    (while (catch 'infloop
	     (maphash
	      (lambda (_id refs)
		;; Deal with self-referencing References loops.
		(when (and (car refs)
			   (not (zerop
				 (apply
				  #'+
				  (mapcar
				   (lambda (thread)
				     (gnus-thread-loop-p
				      (car refs) thread))
				   (cdr refs))))))
		  (setq threads nil)
		  (throw 'infloop t))
		(unless (car refs)
		  ;; These threads do not refer back to any other
		  ;; articles, so they're roots.
		  (setq threads (append (cdr refs) threads))))
	      gnus-newsgroup-dependencies)))
    threads))