Function: gnus-group-insert-group-line

gnus-group-insert-group-line is an autoloaded and byte-compiled function defined in gnus-group.el.gz.

Signature

(gnus-group-insert-group-line GROUP LEVEL MARKED NUMBER METHOD)

Documentation

Insert a group line in the group buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-group-insert-group-line (group level marked number method)
  "Insert a group line in the group buffer."
  (with-suppressed-warnings ((lexical number))
    (defvar number))            ;FIXME: Used in `gnus-group-line-format-alist'.
  (let* ((number number)
	 (gnus-tmp-level level)
	 (gnus-tmp-marked marked)
	 (gnus-tmp-group group)
	 (gnus-tmp-method
	  (gnus-server-get-method gnus-tmp-group method))
	 (gnus-tmp-active (gnus-active gnus-tmp-group))
	 (gnus-tmp-number-total
	  (if gnus-tmp-active
	      (1+ (- (cdr gnus-tmp-active) (car gnus-tmp-active)))
	    0))
	 (gnus-tmp-number-of-unread
	  (if (numberp number) (int-to-string (max 0 number))
	    "*"))
	 (gnus-tmp-number-of-read
	  (if (numberp number)
	      (int-to-string (max 0 (- gnus-tmp-number-total number)))
	    "*"))
	 (gnus-tmp-subscribed
          (cond ((<= gnus-tmp-level gnus-level-subscribed) ?\s)
		((<= gnus-tmp-level gnus-level-unsubscribed) ?U)
		((= gnus-tmp-level gnus-level-zombie) ?Z)
		(t ?K)))
	 (gnus-tmp-qualified-group
	  (gnus-group-real-name gnus-tmp-group))
	 (gnus-tmp-comment
	  (or (gnus-group-get-parameter gnus-tmp-group 'comment t)
	      gnus-tmp-group))
	 (gnus-tmp-newsgroup-description
	  (if gnus-description-hashtb
	      (or (gethash gnus-tmp-group gnus-description-hashtb) "")
	    ""))
	 (gnus-tmp-moderated
	  (if (and gnus-moderated-hashtb
		   (gethash gnus-tmp-group gnus-moderated-hashtb))
              ?m ?\s))
	 (gnus-tmp-moderated-string
	  (if (eq gnus-tmp-moderated ?m) "(m)" ""))
         (gnus-tmp-group-icon (gnus-group-get-icon gnus-tmp-group))
	 (gnus-tmp-news-server (or (cadr gnus-tmp-method) ""))
	 (gnus-tmp-news-method (or (car gnus-tmp-method) ""))
	 (gnus-tmp-news-method-string
	  (if gnus-tmp-method
	      (format "(%s:%s)" (car gnus-tmp-method)
		      (cadr gnus-tmp-method))
	    ""))
	 (gnus-tmp-marked-mark
	  (if (and (numberp number)
		   (zerop number)
		   (cdr (assq 'tick gnus-tmp-marked)))
              ?* ?\s))
	 (gnus-tmp-summary-live
	  (if (and (not gnus-group-is-exiting-p)
		   (gnus-buffer-live-p (gnus-summary-buffer-name
					gnus-tmp-group)))
              ?* ?\s))
	 (gnus-tmp-process-marked
	  (if (member gnus-tmp-group gnus-group-marked)
              gnus-process-mark ?\s))
	 (buffer-read-only nil)
	 beg end
         gnus-tmp-header)	  ; passed as parameter to user-funcs.
    (beginning-of-line)
    (setq beg (point))
    (add-text-properties
     (point)
     (prog1 (1+ (point))
       ;; Insert the text.
       (eval gnus-group-line-format-spec t))
     `(gnus-group ,gnus-tmp-group
		  gnus-unread ,(if (numberp number)
				   (string-to-number gnus-tmp-number-of-unread)
				 t)
		  gnus-marked ,gnus-tmp-marked-mark
		  gnus-indentation ,gnus-group-indentation
		  gnus-level ,gnus-tmp-level))
    (setq end (point))
    (gnus-group--setup-tool-bar-update beg end)
    (forward-line -1)
    (when (inline (gnus-visual-p 'group-highlight 'highlight))
      (gnus-group-highlight-line gnus-tmp-group beg end))
    (gnus-run-hooks 'gnus-group-update-hook)
    (forward-line)))