[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Using setq with global-mode-string

From: Decebal
Subject: Using setq with global-mode-string
Date: Fri, 16 Jan 2009 15:35:35 -0800 (PST)
User-agent: G2/1.0

I have the following code to display the number of lines, words and
chars in the modeline (needs Emacs 22):

    (defvar buffer-count-chars
      "*Number of chars in the buffer."

    (defvar buffer-count-lines
      "*Number of lines in the buffer."

    (defvar buffer-count-words
      "*Number of words in the buffer."

    (defun buffer-count(expression)
      (how-many expression (point-min) (point-max))

    (defun buffer-update-mode-line()
      (setq buffer-count-lines
             (+ (buffer-count "\n") 1)

            (number-to-string (buffer-count "\\w+"))

            (number-to-string (buffer-count ".\\|\n"))

    (unless buffer-count-lines
      (run-with-idle-timer 1 t 'buffer-update-mode-line)

    (unless (memq 'buffer-count-lines global-mode-string)
      (add-to-list 'global-mode-string " Lines: "          t)
      (add-to-list 'global-mode-string 'buffer-count-lines t)
      (add-to-list 'global-mode-string " Words: "          t)
      (add-to-list 'global-mode-string 'buffer-count-words t)
      (add-to-list 'global-mode-string " Chars: "          t)
      (add-to-list 'global-mode-string 'buffer-count-chars t)
      (add-to-list 'global-mode-string "  "                t)
    ;  (setq global-mode-string
    ;   (list 'global-mode-string
    ;         " Lines: " 'buffer-count-lines
    ;         " Words: " 'buffer-count-words
    ;         " Chars: " 'buffer-count-chars
    ;         " "
    ;         )
    ;   )

This works okay. But I would prefer to use the commented setq instead
of the seven add-to-list. I would think it does the same, but when
using setq instead of the add-to-list's, only ' Lines: ' is displayed
and nothing else. Why?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]