From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "J.P." Newsgroups: gmane.emacs.bugs,gmane.emacs.erc.general Subject: bug#51753: ERC switches to channel buffer on reconnect Date: Fri, 19 Nov 2021 05:13:58 -0800 Message-ID: <875ysothih.fsf@neverwas.me> References: <877ddfgz8q.fsf__46160.5365084083$1636600524$gmane$org@neverwas.me> <87bl2re5eg.fsf@gnus.org> <87lf1ve0m4.fsf@neverwas.me> <877ddf9sht.fsf@gnus.org> <87czmwjutj.fsf@neverwas.me> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10933"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux) Cc: Lars Ingebrigtsen , emacs-erc@gnu.org, Amin Bandali , 51753@debbugs.gnu.org To: Stefan Kangas Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Nov 19 14:16:22 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mo3ka-0002Z6-8I for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 19 Nov 2021 14:16:20 +0100 Original-Received: from localhost ([::1]:35490 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo3kZ-0004vg-9l for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 19 Nov 2021 08:16:19 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:49456) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo3jK-0004tI-LT for bug-gnu-emacs@gnu.org; Fri, 19 Nov 2021 08:15:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55065) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo3jK-00079n-Cf for bug-gnu-emacs@gnu.org; Fri, 19 Nov 2021 08:15:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mo3jK-0005OU-8E for bug-gnu-emacs@gnu.org; Fri, 19 Nov 2021 08:15:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: "J.P." Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Nov 2021 13:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51753 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51753-submit@debbugs.gnu.org id=B51753.163732765120647 (code B ref 51753); Fri, 19 Nov 2021 13:15:02 +0000 Original-Received: (at 51753) by debbugs.gnu.org; 19 Nov 2021 13:14:11 +0000 Original-Received: from localhost ([127.0.0.1]:38378 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mo3iV-0005Mx-BQ for submit@debbugs.gnu.org; Fri, 19 Nov 2021 08:14:11 -0500 Original-Received: from mail-108-mta62.mxroute.com ([136.175.108.62]:45709) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mo3iT-0005Mg-F1 for 51753@debbugs.gnu.org; Fri, 19 Nov 2021 08:14:10 -0500 Original-Received: from filter004.mxroute.com ([149.28.56.236] filter004.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta62.mxroute.com (ZoneMTA) with ESMTPSA id 17d3855200a000177f.001 for <51753@debbugs.gnu.org> (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Fri, 19 Nov 2021 13:14:02 +0000 X-Zone-Loop: 6326f686473d14bb7ea9f0686743b6b84cd8cd8de0c9 X-Originating-IP: [149.28.56.236] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=neverwas.me ; s=x; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References: Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Ya6YSBxhT1MJJ/xeLYMhB27nsUdKZCfHjwkFRKERN9I=; b=g/vluah3GN8Y9q7oVryLzw4dCH vLmlAojH9U9tjFvWt9q7Wc/BPbiu5exKa3Hkb4JIIf8qsyq3/1gqgLqjRSgzLrd+SxknjDwJdDXfD jXOFuCg1BsAKHH/Ce2ymBaVw3YGv2DPzRzhwM/0jEkmMqd4dRRrDXWiG7A5t95VGjLbZcJ/wxVaH6 Rgj/zXCJuSMY8EF9TNsKqi1TeteA0aCxCH9fPz3BnoBuEhbtQx9y+NdhXd29brx8VJ2DgEiixvW44 B1j1UCyKHySZ/ZChEl0T7eqZQJcyk69wjabMXkQe7jlghdsqJxfLfD14vQ+pxcGTppkR4lTxfT/to Q0DfbxaA==; In-Reply-To: (Stefan Kangas's message of "Fri, 19 Nov 2021 12:45:14 +0100") X-AuthUser: masked@neverwas.me X-Zone-Spam-Resolution: no action X-Zone-Spam-Status: No, score=-0.1, required=15, tests=[ARC_NA=0, FROM_HAS_DN=0, TO_DN_SOME=0, HAS_ATTACHMENT=0, FROM_EQ_ENVFROM=0, MIME_TRACE=0, MIME_GOOD=-0.1, RCPT_COUNT_FIVE=0, MID_RHS_MATCH_FROM=0, RCVD_COUNT_ZERO=0, NEURAL_SPAM=0] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:220420 gmane.emacs.erc.general:1671 Archived-At: --=-=-= Content-Type: text/plain Stefan Kangas writes: > On balance, I don't have a strong opinion either way. (I do like > `erc-reconnect-display' slightly better, because many variables that end > with `-buffer' have to do with the _name_ of some buffer. But it is > true that it is also nice to have a name similar to `erc-join-buffer'.) Screw it. Let's go with `erc-reconnect-display'. > I just have some minor nits below: > >> +(defvar-local erc--server-last-reconnect-count 0 >> + "Snapshot of reconnect count when connection established.") > > "when the connection was established", perhaps? Now reads as ^. > What is the difference between `buffer' and t? Should they really have > the same :tag? No idea to both, unfortunately. But since the option is only used in that one function (`erc-setup-buffer'), and since we don't claim like-for-like compatibility with `erc-join-buffer' (which we've already deviated from anyway by offering a choice of nil) ... > I suggest we drop one of them. Agreed. Thanks. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0000-v1-v2.diff >From d7e9871283cfc6f0e841adf99251ae7057d39d7b Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Fri, 19 Nov 2021 04:41:50 -0800 Subject: NOT A PATCH F. Jason Park (1): Customize displaying of ERC buffers on reconnect lisp/erc/erc-backend.el | 3 +++ lisp/erc/erc.el | 23 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) Interdiff: diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 4b39bd8a30..0d586268e9 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -194,7 +194,7 @@ erc-server-reconnect-count "Number of times we have failed to reconnect to the current server.") (defvar-local erc--server-last-reconnect-count 0 - "Snapshot of reconnect count when connection established.") + "Snapshot of reconnect count when the connection was established.") (defvar-local erc-server-quitting nil "Non-nil if the user requests a quit.") diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 21ae25d920..01be8ed397 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1521,7 +1521,7 @@ erc-join-buffer (const :tag "Use current buffer" buffer) (const :tag "Use current buffer" t))) -(defcustom erc-reconnect-buffer nil +(defcustom erc-reconnect-display nil "How (and whether) to display a channel buffer upon reconnecting. This only affects automatic reconnections and is ignored when issuing a @@ -1534,8 +1534,7 @@ erc-reconnect-buffer (const :tag "Split window, don't select" window-noselect) (const :tag "New frame" frame) (const :tag "Bury in new buffer" bury) - (const :tag "Use current buffer" buffer) - (const :tag "Use current buffer" t))) + (const :tag "Use current buffer" buffer))) (defcustom erc-frame-alist nil "Alist of frame parameters for creating erc frames. @@ -1969,7 +1968,7 @@ erc-setup-buffer (pcase (if (zerop (erc-with-server-buffer erc--server-last-reconnect-count)) erc-join-buffer - (or erc-reconnect-buffer erc-join-buffer)) + (or erc-reconnect-display erc-join-buffer)) ('window (if (active-minibuffer-window) (display-buffer buffer) -- 2.31.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Customize-displaying-of-ERC-buffers-on-reconnect.patch >From d7e9871283cfc6f0e841adf99251ae7057d39d7b Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Thu, 18 Nov 2021 23:39:54 -0800 Subject: [PATCH 1/1] Customize displaying of ERC buffers on reconnect * lisp/erc/erc-backend.el (erc--server-last-reconnect-count): Add variable to record last reconnect tally. * lisp/erc/erc.el (erc-reconnect-buffer): Add option to specify channel-buffer display behavior on reconnect. (erc-setup-buffer): Use option `erc-reconnect-buffer' if warranted. (erc-connection-established): Record reconnect count in internal var before resetting. --- lisp/erc/erc-backend.el | 3 +++ lisp/erc/erc.el | 23 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 69f63dfbc4..0d586268e9 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el @@ -193,6 +193,9 @@ erc-server-connected (defvar-local erc-server-reconnect-count 0 "Number of times we have failed to reconnect to the current server.") +(defvar-local erc--server-last-reconnect-count 0 + "Snapshot of reconnect count when the connection was established.") + (defvar-local erc-server-quitting nil "Non-nil if the user requests a quit.") diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index c5a4fbe5a0..01be8ed397 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1521,6 +1521,21 @@ erc-join-buffer (const :tag "Use current buffer" buffer) (const :tag "Use current buffer" t))) +(defcustom erc-reconnect-display nil + "How (and whether) to display a channel buffer upon reconnecting. + +This only affects automatic reconnections and is ignored when issuing a +/reconnect command or reinvoking `erc-tls' with the same args (assuming +success, of course). See `erc-join-buffer' for a description of +possible values." + :group 'erc-buffers + :type '(choice (const :tag "Use value of `erc-join-buffer'" nil) + (const :tag "Split window and select" window) + (const :tag "Split window, don't select" window-noselect) + (const :tag "New frame" frame) + (const :tag "Bury in new buffer" bury) + (const :tag "Use current buffer" buffer))) + (defcustom erc-frame-alist nil "Alist of frame parameters for creating erc frames. A value of nil means to use `default-frame-alist'." @@ -1950,7 +1965,10 @@ erc-update-modules (defun erc-setup-buffer (buffer) "Consults `erc-join-buffer' to find out how to display `BUFFER'." - (pcase erc-join-buffer + (pcase (if (zerop (erc-with-server-buffer + erc--server-last-reconnect-count)) + erc-join-buffer + (or erc-reconnect-display erc-join-buffer)) ('window (if (active-minibuffer-window) (display-buffer buffer) @@ -4722,7 +4740,8 @@ erc-connection-established (nick (car (erc-response.command-args parsed))) (buffer (process-buffer proc))) (setq erc-server-connected t) - (setq erc-server-reconnect-count 0) + (setq erc--server-last-reconnect-count erc-server-reconnect-count + erc-server-reconnect-count 0) (erc-update-mode-line) (erc-set-initial-user-mode nick buffer) (erc-server-setup-periodical-ping buffer) -- 2.31.1 --=-=-=--