Function: gnus-group-set-mode-line

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

Signature

(gnus-group-set-mode-line)

Documentation

Update the mode line in the group buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-group-set-mode-line ()
  "Update the mode line in the group buffer."
  (when (memq 'group gnus-updated-mode-lines)
    ;; Yes, we want to keep this mode line updated.
    (with-current-buffer gnus-group-buffer
      (let* ((gformat (or gnus-group-mode-line-format-spec
			  (gnus-set-format 'group-mode)))
	     (gnus-tmp-news-server (cadr gnus-select-method))
	     (gnus-tmp-news-method (car gnus-select-method))
	     (gnus-tmp-colon (if (equal gnus-tmp-news-server "") "" ":"))
	     (max-len 60)
	     gnus-tmp-header		;Dummy binding for user-defined formats
	     ;; Get the resulting string.
	     (modified
              (and (buffer-live-p gnus-dribble-buffer)
		   (buffer-modified-p gnus-dribble-buffer)
		   (with-current-buffer gnus-dribble-buffer
		     (not (zerop (buffer-size))))))
	     (mode-string (eval gformat t)))
	;; Say whether the dribble buffer has been modified.
	(setq mode-line-modified
	      (if modified "**" "--"))
	;; If the line is too long, we chop it off.
	(when (> (length mode-string) max-len)
	  (setq mode-string (substring mode-string 0 (- max-len 4))))
	(prog1
	    (setq mode-line-buffer-identification
		  (gnus-mode-line-buffer-identification (list mode-string)))
	  (set-buffer-modified-p modified))))))