unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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).