From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Cecil Westerhof Newsgroups: gmane.emacs.help Subject: Re: How to update modelines of all displayed buffers Date: Fri, 16 Apr 2010 09:19:16 +0200 Organization: Decebal Computing Message-ID: <87fx2vvp8r.fsf@linux-lqcw.site> References: <87y6gor07c.fsf@linux-lqcw.site> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1273007323 12231 80.91.229.12 (4 May 2010 21:08:43 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 4 May 2010 21:08:43 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue May 04 23:08:38 2010 connect(): No such file or directory Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O9PM2-0004lt-UH for geh-help-gnu-emacs@m.gmane.org; Tue, 04 May 2010 23:08:35 +0200 Original-Received: from localhost ([127.0.0.1]:55999 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O9PM2-0008Mb-C1 for geh-help-gnu-emacs@m.gmane.org; Tue, 04 May 2010 17:08:34 -0400 Original-Path: usenet.stanford.edu!postnews.google.com!news1.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!194.109.133.84.MISMATCH!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Original-Newsgroups: gnu.emacs.help User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) X-Homepage: http://www.decebal.nl/ Cancel-Lock: sha1:cWB5EmStveJBPQdZCzRtkFLqPzM= Original-Lines: 45 Original-NNTP-Posting-Host: 84.53.123.169 Original-X-Trace: 1271402334 news.xs4all.nl 22938 decebal/[::ffff:84.53.123.169]:10100 Original-X-Complaints-To: abuse@xs4all.nl Original-Xref: usenet.stanford.edu gnu.emacs.help:177716 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:73169 Archived-At: Barry Margolin writes: >> I have defined the following function: >> (defun buffer-update-mode-line () >> (setq buffer-mode-line (buffer-mode-line-extra)) >> (force-mode-line-update t)) >> >> The function buffer-mode-line-extra gives the extra data I want to >> display in the modeline. > > What's the variable buffer-mode-line? I can't find it in the Emacs Lisp > documentation, is it something you added? Yes, my bad: (unless (memq 'buffer-mode-line global-mode-string) (setq global-mode-string (append global-mode-string '("" buffer-mode-line)))) >> It is called every minute with: >> (run-with-timer 60 60 'buffer-update-mode-line) >> >> With this only the modeline of the current buffer is updated. In >> principal (force-mode-line-update t) makes all modelines updated, but >> that will only work if for every (visible) buffer buffer-mode-line is >> updated with the function buffer-mode-line-extra. Is there a way to get >> this done? > > If buffer-mode-line is a buffer-local variable, you need to loop through > all buffers, changing to each one and running your function. > > (defun update-mode-line-all-buffers () > (save-current-buffer > (dolist (b (buffer-list)) > (set-buffer b) > (buffer-update-mode-line)))) This does all buffers. Is it possible to do it only for displayed buffers? -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof