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 message dated Sat, 14 Sep 2013 19:33:47 -0400
with message-id <omhadn5678.fsf <at> fencepost.gnu.org>
and subject line Re: bug#15377: 24.1; erc-mode-line-update-buffer can mishandle updates when there is no topic
has caused the debbugs.gnu.org bug report #15377,
regarding 24.1; erc-mode-line-update-buffer can mishandle updates when there is no topic
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> 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)]
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.
[Message part 3 (message/rfc822, inline)]
Version: 24.4
Thanks; applied.
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.