GNU bug report logs -
#15377
24.1; erc-mode-line-update-buffer can mishandle updates when there is no topic
Previous Next
Reported by: Vivek Dasmohapatra <vivek <at> etla.org>
Date: Sat, 14 Sep 2013 00:34:02 UTC
Severity: normal
Found in version 24.1
Fixed in version 24.4
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#15377: 24.1; erc-mode-line-update-buffer can mishandle updates when there is no topic
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 15377 <at> debbugs.gnu.org.
--
15377: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15377
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Version: 24.4
Thanks; applied.
[Message part 3 (message/rfc822, inline)]
Very rarely, erc can start throwing lots of errors inside its process
sentinel - a couple of users on #emacs also reported it recently:
[conversation edited for noise]
<xxxx> sigh, periodically, my erc … "error in process
filter: Invalid format character: `%o'"
<yyyy> xxxx: I've seen this error a few times before--typically when my
bouncer has just experienced connection difficulties and is in a
disconnect/reconnect thrash.
I tracked it down to:
erc-header-line-format: "%n on %t (%m,%l) %o"
And in erc-update-mode-line-buffer:
(let ((spec (format-spec-make
⋮
?o (erc-controls-strip erc-channel-topic)
And then:
(format-spec erc-header-line-format spec)
But erc-controls-strip can return nil, which does make format-spec
choke on "%o", since it does not differentiate between a spec with
no ?o element and one containing ?o nil.
The following should fix it:
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -6210,7 +6210,7 @@ if `erc-away' is non-nil."
?m (erc-format-channel-modes)
?n (or (erc-current-nick) "")
?N (erc-format-network)
- ?o (erc-controls-strip erc-channel-topic)
+ ?o (or (erc-controls-strip erc-channel-topic) "")
?p (erc-port-to-string erc-session-port)
?s (erc-format-target-and/or-server)
?S (erc-format-target-and/or-network)
I have no real test recipe, since the error is intermittent and
I don't know what makes the erc-channel-topic degrade to nil,
but you can try this:
M-: (let (erc-channel-topic) (erc-update-mode-line-buffer (current-buffer)))
with an erc-buffer current.
This bug report was last modified 11 years and 346 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.