emacs-diffs
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]