From: Olivier Certner Date: Fri, 23 Oct 2020 12:39:04 +0000 (+0200) Subject: ERC: Fix ERC's IBuffer format "crash" on killed server buffer X-Git-Tag: emacs-28.0.90~5467 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=944c4708358e0121a1a62b629959032e399f3187;p=emacs.git 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 --- diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 7aee7705fff..556a25e3e7b 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)