[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 944c470 2/2: ERC: Fix ERC's IBuffer format "crash" on killed serv
From: |
Lars Ingebrigtsen |
Subject: |
master 944c470 2/2: ERC: Fix ERC's IBuffer format "crash" on killed server buffer |
Date: |
Fri, 23 Oct 2020 09:11:45 -0400 (EDT) |
branch: master
commit 944c4708358e0121a1a62b629959032e399f3187
Author: Olivier Certner <ocert.dev@free.fr>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
ERC: Fix ERC's IBuffer format "crash" on killed server buffer
* lisp/erc/erc-ibuffer.el (erc-server-name): Fix a crash when
displaying (or updating) an IBuffer buffer using ERC's first IBuffer
format. This happens when one ERC buffer has its associated server
buffer killed, e.g., voluntarily or automatically after server
disconnection when `erc-kill-server-buffer-on-quit' is set to t. The
culprit is the "Server" column, which returns nil in this case.
Display "(closed)" instead (bug#44156).
Copyright-paperwork-exempt: yes
---
lisp/erc/erc-ibuffer.el | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el
index 7aee770..556a25e 100644
--- a/lisp/erc/erc-ibuffer.el
+++ b/lisp/erc/erc-ibuffer.el
@@ -92,10 +92,14 @@
" "))
(define-ibuffer-column erc-server-name (:name "Server")
- (if (and erc-server-process (processp erc-server-process))
- (with-current-buffer (process-buffer erc-server-process)
- (or erc-server-announced-name erc-session-server))
- ""))
+ (or
+ (when (and erc-server-process (processp erc-server-process))
+ (let ((buffer (process-buffer erc-server-process)))
+ (if (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (or erc-server-announced-name erc-session-server))
+ "(closed)")))
+ ""))
(define-ibuffer-column erc-target (:name "Target")
(if (eq major-mode 'erc-mode)