From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: goto-line-history should not be buffer local. Date: Mon, 15 Feb 2021 21:12:59 +0000 Message-ID: References: <87im6ugsdq.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14133"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Richard Copley , =?iso-8859-1?Q?=D3scar?= Fuentes , Emacs Development To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Feb 15 22:13:52 2021 Return-path: Envelope-to: ged-emacs-devel@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 1lBlBo-0003aZ-5O for ged-emacs-devel@m.gmane-mx.org; Mon, 15 Feb 2021 22:13:52 +0100 Original-Received: from localhost ([::1]:42814 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lBlBn-0001sO-74 for ged-emacs-devel@m.gmane-mx.org; Mon, 15 Feb 2021 16:13:51 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBlB2-0001Qm-0T for emacs-devel@gnu.org; Mon, 15 Feb 2021 16:13:04 -0500 Original-Received: from colin.muc.de ([193.149.48.1]:44072 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1lBlB0-00032d-3J for emacs-devel@gnu.org; Mon, 15 Feb 2021 16:13:03 -0500 Original-Received: (qmail 70068 invoked by uid 3782); 15 Feb 2021 21:12:59 -0000 Original-Received: from acm.muc.de (p4fe15ca1.dip0.t-ipconnect.de [79.225.92.161]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 15 Feb 2021 22:12:59 +0100 Original-Received: (qmail 6157 invoked by uid 1000); 15 Feb 2021 21:12:59 -0000 Content-Disposition: inline In-Reply-To: X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:264863 Archived-At: Hello, Martin. On Mon, Feb 15, 2021 at 09:17:18 +0100, martin rudalics wrote: > >> Why is goto-line-history buffer local? This seems to me to be a step > >> backwards, for precisely the reason that making search history buffer > >> local would be a bad thing. > > I agree. I've been locally patching out that part of the commit since > > a few months after it was introduced, which was at the end of 2019, as > > Óscar points out. > Then this feature should be made optional. How about this (plus a NEWS entry and some amendments to the Emacs manual)? diff --git a/lisp/simple.el b/lisp/simple.el index 0c5bcb6672..b2b559ed13 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -1274,7 +1274,19 @@ mark-whole-buffer ;; Counting lines, one way or another. -(defvar-local goto-line-history nil +(defcustom goto-line-history-local nil + "If this option is nil, `goto-line-history' is shared between all buffers. +if it is non-nil, each buffer has its own value of this history list. + +Note that on changing from non-nil to nil, the former contents of +`goto-line-history' for each buffer are discarded on use of +`goto-line' in that buffer." + :group 'editing + :type 'boolean + :safe #'booleanp + :version "28.1") + +(defvar goto-line-history nil "History of values entered with `goto-line'.") (defun goto-line-read-args (&optional relative) @@ -1292,6 +1304,11 @@ goto-line-read-args (if buffer (concat " in " (buffer-name buffer)) ""))) + ;; Has the buffer locality of `goto-line-history' changed? + (cond ((and goto-line-history-local (not (local-variable-p 'goto-line-history))) + (make-local-variable 'goto-line-history)) + ((and (not goto-line-history-local) (local-variable-p 'goto-line-history)) + (kill-local-variable 'goto-line-history))) ;; Read the argument, offering that number (if any) as default. (list (read-number (format "Goto%s line%s: " (if (buffer-narrowed-p) Anybody have any objections to this? > martin -- Alan Mackenzie (Nuremberg, Germany).