* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
@ 2014-09-19 14:28 Tom Tromey
2014-09-19 17:25 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Tom Tromey @ 2014-09-19 14:28 UTC (permalink / raw)
To: 18510
When using ERC with the 'track' module, I notice that when I am idle, if
a new message comes in then the mode line is not updated. If I type,
though, the mode line updates.
This defeats the purpose of erc-track.
I've worked around it locally by advising erc-update-mode-line to call
(force-mode-line-update t).
In GNU Emacs 24.4.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.9)
of 2014-09-15 on bapiya
Repository revision: 117884 dancol@dancol.org-20140915050944-sqsajysnwef51f9m
Windowing system distributor `Fedora Project', version 11.0.11404000
Configured using:
`configure --prefix=/home/tromey/Emacs/install'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=none
locale-coding-system: utf-8-unix
Major mode: Emacs-Lisp
Minor modes in effect:
diff-auto-refine-mode: t
flyspell-mode: t
eldoc-mode: t
which-function-mode: t
global-auto-revert-mode: t
desktop-save-mode: t
erc-services-mode: t
erc-list-mode: t
erc-menu-mode: t
erc-autojoin-mode: t
erc-ring-mode: t
erc-networks-mode: t
erc-pcomplete-mode: t
erc-track-mode: t
erc-match-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-netsplit-mode: t
erc-irccontrols-mode: t
erc-noncommands-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
savehist-mode: t
tooltip-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
auto-fill-function: do-auto-fill
Recent input:
C-u C-u C-n C-l C-u C-u C-n C-l C-v C-s c h a n n e
l C-r C-r C-r C-a C-s c o m m a n d C-w C-s C-a C-u
C-n C-u C-n C-u C-p C-n C-l C-s d e C-w C-w C-s C-s
C-s C-v C-l C-v C-l C-v C-v C-v M-v M-v M-v C-r # C-r
C-r C-r C-r C-r C-r C-r C-r C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-a C-u C-u C-n C-l C-s d e c C-a M-v M-v
M-< C-s d e c o d e - s t r i n g C-w C-w C-a C-u C-SPC
C-u C-SPC C-s C-s C-a C-n C-n C-u C-n C-u C-n C-u C-u
C-p C-u C-p C-u C-p C-s e r C-w C-w C-w C-w C-w C-s
C-s C-l C-n C-n C-M-b C-s C-w C-w C-w C-w C-w C-s C-a
C-u C-u C-n C-p C-p C-p C-l M-f M-b C-s C-w C-w C-w
C-r C-r C-r C-s C-s C-s C-s C-l M-< C-s e r c - g e
t - h o o k M-< C-s d e f i n e C-s C-s C-w C-w C-w
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-s C-a C-v C-l C-u C-u C-n C-l <switch-frame>
<switch-frame> C-z n M-x r e p o r t - e m <tab> <
return>
Recent messages:
Making completion list...
Grep finished (matches found)
Mark saved where search started [9 times]
Mark set
Mark saved where search started [5 times]
Mark set
Mark saved where search started
Mark set
Mark saved where search started
Load-path shadows:
/home/tromey/.emacs.d/elpa/css-mode-1.0/css-mode hides /home/tromey/Emacs/install/share/emacs/24.4.50/lisp/textmodes/css-mode
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/24.4.50/lisp/play/bubbles
Features:
(shadow emacsbug log-view cus-edit tar-mode bbdb-sc supercite regi debug
cl-macs eieio-opt speedbar sb-image ezimage dframe help-mode dabbrev
log-edit pcvs-util copyright url-http url-gw url-auth url-queue
mailalias misearch multi-isearch mail-hist nnir find-file gnus-fun
gnus-html xml url-cache mm-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util url-parse
url-vars shr-color color shr browse-url bbdb-gui bbdb-hooks mule-util
sort smiley gnus-cite flow-fill mm-archive gnus-async gnus-bcklg qp
gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus
bbdb-snarf mail-extr bbdb-com warnings cl gv gnutls network-stream
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache gnus-registry registry eieio-base gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime dig mailcap gnus-sum gnus-group
gnus-undo smtpmail sendmail gnus-start gnus-cloud nnimap nnmail
mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus gnus-ems nnheader mail-utils tcl autoconf autoconf-mode
make-mode smerge-mode diff-mode goto-addr python js json vc-arch vc-mtn
vc-hg vc-bzr vc-sccs vc-svn vc-cvs vc-rcs bug-reference cc-mode cc-fonts
cc-guess cc-menus cc-cmds org-element org-rmail org-mhe org-irc org-info
org-gnus org-docview doc-view jka-compr image-mode dired org-bibtex
bibtex org-bbdb org-w3m org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline easy-mmode org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs vc-git
add-log flyspell ispell eldoc diminish projectile edmacro kmacro
pkg-info find-func lisp-mnt epl grep compile dash s appt diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu minimap
autorevert filenotify desktop frameset cus-start cus-load status
erc-services erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete pcomplete erc-track erc-match erc-button wid-edit
cl-loaddefs cl-lib erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat format-spec auth-source eieio byte-opt bytecomp
byte-compile cconv eieio-core gnus-util mm-util mail-prsvr
password-cache thingatpt pp advice help-fns vc-dir ewoc vc vc-dispatcher
cc-styles cc-align cc-engine cc-vars cc-defs bbdb timezone ange-ftp
comint ansi-color ring server savehist dwarf-mode-autoloads
gdb-shell-autoloads jabber-autoloads lisppaste-autoloads
pydoc-info-autoloads info-look info easymenu weblogger-autoloads package
bbdb-autoloads time-date tooltip electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)
Memory information:
((conses 16 977335 198850)
(symbols 48 105217 553)
(miscs 40 41771 4212)
(strings 32 332091 34639)
(string-bytes 1 15139520)
(vectors 16 97683)
(vector-slots 8 2190694 174189)
(floats 8 563 901)
(intervals 56 49476 1106)
(buffers 976 350)
(heap 1024 278846 83955))
Tom
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-19 14:28 bug#18510: 24.4.50; ERC doesn't update mode line frequently enough Tom Tromey
@ 2014-09-19 17:25 ` Stefan Monnier
2014-09-19 18:37 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2014-09-19 17:25 UTC (permalink / raw)
To: Tom Tromey; +Cc: 18510
> I've worked around it locally by advising erc-update-mode-line to call
> (force-mode-line-update t).
That's not a workaround, that's a fix.
Stefan
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-19 17:25 ` Stefan Monnier
@ 2014-09-19 18:37 ` Stefan Monnier
2014-09-24 13:20 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2014-09-19 18:37 UTC (permalink / raw)
To: Tom Tromey; +Cc: 18510
>> I've worked around it locally by advising erc-update-mode-line to call
>> (force-mode-line-update t).
> That's not a workaround, that's a fix.
Hmm... not sure what that was about, sorry. Of course, the
(force-mode-line-update t) should only be called when changing
a variable that's visible in the global mode-line-format.
Does the patch below work?
[ I assume the problem is also present in 24.3.93. ]
Stefan
=== modified file 'lisp/erc/erc-track.el'
--- lisp/erc/erc-track.el 2014-02-10 01:34:22 +0000
+++ lisp/erc/erc-track.el 2014-09-19 18:34:57 +0000
@@ -767,8 +765,7 @@
(erc-modified-channels-remove-buffer buffer))))
erc-modified-channels-alist)
(when removed-channel
- (erc-modified-channels-display)
- (force-mode-line-update t)))
+ (erc-modified-channels-display)))
(remove-hook 'post-command-hook 'erc-modified-channels-update)))
(defvar erc-track-mouse-face (if (featurep 'xemacs)
@@ -825,9 +822,10 @@
((eq 'importance erc-track-switch-direction)
(erc-track-sort-by-importance)))
(run-hooks 'erc-track-list-changed-hook)
- (unless (eq erc-track-position-in-mode-line nil)
- (if (null erc-modified-channels-alist)
- (setq erc-modified-channels-object (erc-modified-channels-object nil))
+ (when erc-track-position-in-mode-line
+ (let* ((oldobject erc-modified-channels-object)
+ (strings
+ (when erc-modified-channels-alist
;; erc-modified-channels-alist contains all the data we need. To
;; better understand what is going on, we split things up into
;; four lists: BUFFERS, COUNTS, SHORT-NAMES, and FACES. These
@@ -858,10 +856,11 @@
buffers (cdr buffers)
counts (cdr counts)
faces (cdr faces)))
- (when (featurep 'xemacs)
- (erc-modified-channels-object nil))
- (setq erc-modified-channels-object
- (erc-modified-channels-object strings))))))
+ strings)))
+ (newobject (erc-modified-channels-object strings)))
+ (unless (equal oldobject newobject)
+ (setq erc-modified-channels-object newobject)
+ (force-mode-line-update t)))))
(defun erc-modified-channels-remove-buffer (buffer)
"Remove BUFFER from `erc-modified-channels-alist'."
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-19 18:37 ` Stefan Monnier
@ 2014-09-24 13:20 ` Stefan Monnier
2014-09-24 16:37 ` Tom Tromey
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2014-09-24 13:20 UTC (permalink / raw)
To: Tom Tromey; +Cc: 18510
Ping?
Stefan
>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> I've worked around it locally by advising erc-update-mode-line to call
>>> (force-mode-line-update t).
>> That's not a workaround, that's a fix.
> Hmm... not sure what that was about, sorry. Of course, the
> (force-mode-line-update t) should only be called when changing
> a variable that's visible in the global mode-line-format.
> Does the patch below work?
> [ I assume the problem is also present in 24.3.93. ]
> Stefan
> === modified file 'lisp/erc/erc-track.el'
> --- lisp/erc/erc-track.el 2014-02-10 01:34:22 +0000
> +++ lisp/erc/erc-track.el 2014-09-19 18:34:57 +0000
> @@ -767,8 +765,7 @@
> (erc-modified-channels-remove-buffer buffer))))
> erc-modified-channels-alist)
> (when removed-channel
> - (erc-modified-channels-display)
> - (force-mode-line-update t)))
> + (erc-modified-channels-display)))
> (remove-hook 'post-command-hook 'erc-modified-channels-update)))
> (defvar erc-track-mouse-face (if (featurep 'xemacs)
> @@ -825,9 +822,10 @@
> ((eq 'importance erc-track-switch-direction)
> (erc-track-sort-by-importance)))
> (run-hooks 'erc-track-list-changed-hook)
> - (unless (eq erc-track-position-in-mode-line nil)
> - (if (null erc-modified-channels-alist)
> - (setq erc-modified-channels-object (erc-modified-channels-object nil))
> + (when erc-track-position-in-mode-line
> + (let* ((oldobject erc-modified-channels-object)
> + (strings
> + (when erc-modified-channels-alist
> ;; erc-modified-channels-alist contains all the data we need. To
> ;; better understand what is going on, we split things up into
> ;; four lists: BUFFERS, COUNTS, SHORT-NAMES, and FACES. These
> @@ -858,10 +856,11 @@
> buffers (cdr buffers)
> counts (cdr counts)
> faces (cdr faces)))
> - (when (featurep 'xemacs)
> - (erc-modified-channels-object nil))
> - (setq erc-modified-channels-object
> - (erc-modified-channels-object strings))))))
> + strings)))
> + (newobject (erc-modified-channels-object strings)))
> + (unless (equal oldobject newobject)
> + (setq erc-modified-channels-object newobject)
> + (force-mode-line-update t)))))
> (defun erc-modified-channels-remove-buffer (buffer)
> "Remove BUFFER from `erc-modified-channels-alist'."
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-24 13:20 ` Stefan Monnier
@ 2014-09-24 16:37 ` Tom Tromey
2014-09-24 17:32 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Tom Tromey @ 2014-09-24 16:37 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 18510, Tom Tromey
Stefan> Ping?
I'm sorry about the delay on this.
Your patch worked! I applied it to my running Emacs and removed the
advice and waited to see if the ERC mode line updated.
Tom
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-24 16:37 ` Tom Tromey
@ 2014-09-24 17:32 ` Stefan Monnier
2014-10-11 13:30 ` Ivan Shmakov
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2014-09-24 17:32 UTC (permalink / raw)
To: Tom Tromey; +Cc: 18510-done
> Your patch worked! I applied it to my running Emacs and removed the
> advice and waited to see if the ERC mode line updated.
Thanks, installed, closing,
Stefan
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-09-24 17:32 ` Stefan Monnier
@ 2014-10-11 13:30 ` Ivan Shmakov
2014-10-15 1:16 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Ivan Shmakov @ 2014-10-11 13:30 UTC (permalink / raw)
To: 18510
[-- Attachment #1: Type: text/plain, Size: 634 bytes --]
>>>>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Your patch worked! I applied it to my running Emacs and removed the
>> advice and waited to see if the ERC mode line updated.
> Thanks, installed, closing,
Please consider the patch MIMEd.
This should fix the issue introduced in 67c13dfc627d that now
prevents erc-modified-channels-object from being updated when
the buffer has already seen some activity /and/ then sees some
more important (as per erc-track-faces-priority-list) activity
in the same buffer.
--
FSF associate member #7257 http://boycottsystemd.org/ … 3013 B6A0 230E 334A
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/diff, Size: 418 bytes --]
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -860,7 +860,7 @@ Use `erc-make-mode-line-buffer-name' to create buttons."
faces (cdr faces)))
strings)))
(newobject (erc-modified-channels-object strings)))
- (unless (equal oldobject newobject)
+ (unless (equal-including-properties oldobject newobject)
(setq erc-modified-channels-object newobject)
(force-mode-line-update t)))))
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18510: 24.4.50; ERC doesn't update mode line frequently enough
2014-10-11 13:30 ` Ivan Shmakov
@ 2014-10-15 1:16 ` Stefan Monnier
0 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2014-10-15 1:16 UTC (permalink / raw)
To: Ivan Shmakov; +Cc: 18510-done
> This should fix the issue introduced in 67c13dfc627d that now
> prevents erc-modified-channels-object from being updated when
> the buffer has already seen some activity /and/ then sees some
> more important (as per erc-track-faces-priority-list) activity
> in the same buffer.
Thanks, installed,
Stefan
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-10-15 1:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-19 14:28 bug#18510: 24.4.50; ERC doesn't update mode line frequently enough Tom Tromey
2014-09-19 17:25 ` Stefan Monnier
2014-09-19 18:37 ` Stefan Monnier
2014-09-24 13:20 ` Stefan Monnier
2014-09-24 16:37 ` Tom Tromey
2014-09-24 17:32 ` Stefan Monnier
2014-10-11 13:30 ` Ivan Shmakov
2014-10-15 1:16 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).