From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Robert Pluim Newsgroups: gmane.emacs.bugs Subject: bug#38317: Buffer-local variables don't work as history for read-from-minibuffer Date: Wed, 27 Nov 2019 09:14:13 +0100 Message-ID: References: <87eey0lxxm.fsf@gmail.com> <87v9rcqbls.fsf@gnus.org> <5a0c68d0-4d25-bf8d-fbe8-f106b0f92210@gmx.at> <875zjareo1.fsf@gnus.org> <874kyu72kl.fsf@gmail.com> <87wobq5gs0.fsf@gmail.com> <87o8wyl2wa.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="176386"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Lars Ingebrigtsen , 38317@debbugs.gnu.org To: Federico Tedin Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Nov 27 09:15:20 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iZsTo-000jmD-AN for geb-bug-gnu-emacs@m.gmane.org; Wed, 27 Nov 2019 09:15:20 +0100 Original-Received: from localhost ([::1]:35634 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZsTn-0002Mx-2e for geb-bug-gnu-emacs@m.gmane.org; Wed, 27 Nov 2019 03:15:19 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37924) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZsTX-0002Mm-Br for bug-gnu-emacs@gnu.org; Wed, 27 Nov 2019 03:15:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZsTW-0000mh-22 for bug-gnu-emacs@gnu.org; Wed, 27 Nov 2019 03:15:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47432) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iZsTV-0000mX-V7 for bug-gnu-emacs@gnu.org; Wed, 27 Nov 2019 03:15:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iZsTV-0001A4-Rk for bug-gnu-emacs@gnu.org; Wed, 27 Nov 2019 03:15:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Robert Pluim Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 27 Nov 2019 08:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38317 X-GNU-PR-Package: emacs Original-Received: via spool by 38317-submit@debbugs.gnu.org id=B38317.15748424634401 (code B ref 38317); Wed, 27 Nov 2019 08:15:01 +0000 Original-Received: (at 38317) by debbugs.gnu.org; 27 Nov 2019 08:14:23 +0000 Original-Received: from localhost ([127.0.0.1]:53405 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZsSt-00018v-34 for submit@debbugs.gnu.org; Wed, 27 Nov 2019 03:14:23 -0500 Original-Received: from mail-wm1-f51.google.com ([209.85.128.51]:50989) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZsSq-00018g-Te for 38317@debbugs.gnu.org; Wed, 27 Nov 2019 03:14:21 -0500 Original-Received: by mail-wm1-f51.google.com with SMTP id l17so6051444wmh.0 for <38317@debbugs.gnu.org>; Wed, 27 Nov 2019 00:14:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:gmane-reply-to-list:date:in-reply-to :message-id:mime-version; bh=XjRFN+T6MzLzgkCBNWWRkUiKL5MDNPsobHmpIj+LUa0=; b=II2Iu3ZJZuyJZIE8ShGzlFSOMCvDUn9Y8wqJDgZKQKEPhb1JOujpSAUVaQgnYj3RfD uws9aQVrY0hFAg6o9YK9B9fF2AMi8N/hklRGYaFZ0I5ZoJ+JWOBudC+Oe0ftTcdRt0NA NY5aDF1eF9C1Kl35PT4B0chFzTcQvr0JZNsRZMwSXa0Iku6VWt4xP6WTdx3b5r2+SLMV wk+rjdLrNHWv3M32Y8osOn6+li6/ha7cdvaZGOt1KtqIiX3Y3SVque9k+OZSxVi9OeCL hkHluRSxbRZqgbUEIrdMCPT/QzroQ+/yW8jiL+oajLStopQa0hZT0fqEhj9Tc82JliDz B1ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references :gmane-reply-to-list:date:in-reply-to:message-id:mime-version; bh=XjRFN+T6MzLzgkCBNWWRkUiKL5MDNPsobHmpIj+LUa0=; b=pGc7vlc1IS+zOzc4vZV5MmbLn4yyVC+FFdpL9/mQKQUhM8nCN+3KBZTvjgD7StDa2N d7k2MVNxE/PeJgOd3ja2TRegYvDyeHCIBNMmappgeDQp/FJq2hZkukliPU/Xr4liOWH5 kNIDEWBK8CprkaKG6zzlVzb4HYggJVEg63j8kPs8aNWcDewE8m0tsum7XwRDEL34wUJ5 L73/9pVEgCHe3m+XMQqusLb/PX2xPfOyuIuhUYI5xISzUxvcnuN0UI2eKj0MexSiq2O6 yjVdATjasEoGH60nSdBYozYm2UnYLNaZd6GXiUAoIs9oUx24QsMY4Ph8tieolDGUL13O G8aQ== X-Gm-Message-State: APjAAAV7xVfq0wCDy57eymhmKasoNNS4mivxMTfM+PzJodHQASZvdeb8 o+m8dXrlVHb+2OQZgt/z3i0= X-Google-Smtp-Source: APXvYqykGuNdDEA4lZpl6PRCw+ChJ9kQFaexwm5c5rCV7/GdcdhFLVfxKaJWdhi5qbkGjH9w5eww4A== X-Received: by 2002:a7b:cb54:: with SMTP id v20mr2912281wmj.11.1574842454828; Wed, 27 Nov 2019 00:14:14 -0800 (PST) Original-Received: from rpluim-mac ([2a01:e34:ecfc:a860:6dee:4697:b3c4:4ce5]) by smtp.gmail.com with ESMTPSA id x7sm17786351wrq.41.2019.11.27.00.14.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Nov 2019 00:14:14 -0800 (PST) Gmane-Reply-To-List: yes In-Reply-To: <87o8wyl2wa.fsf@gmail.com> (Federico Tedin's message of "Tue, 26 Nov 2019 22:54:29 +0100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172515 Archived-At: >>>>> On Tue, 26 Nov 2019 22:54:29 +0100, Federico Tedin said: >> I'm attaching a draft patch in case anyone wants to provide some >> feedback. Thanks! Federico> I'm now attaching a final version of my patch. Federico> I've tested the following commands with it, using `read-from-minibuffer' Federico> with a buffer-local HIST: Federico> - previous-history-element (M-p) Federico> - next-history-element (M-n) Federico> - previous-matching-history-element (M-r) Federico> - next-matching-history-element (M-s) Federico> - isearch-forward (C-s) Federico> - isearch-backward (C-r) Federico> They've all worked correctly and used only the buffer's local history Federico> value. Federico> Thanks! Federico> From 496fbc75e02e016d50d3e1a21154e4da844a1140 Mon Sep 17 00:00:00 2001 Federico> From: Federico Tedin Federico> Date: Tue, 26 Nov 2019 22:39:34 +0100 Federico> Subject: [PATCH 1/1] Make HIST arg of read-from-minibuffer work with Federico> buffer-local vars Federico> * lisp/simple.el (minibuffer-history-values): New function, should be Federico> used to access the minibuffer input history variable when the Federico> minibuffer might be active. If the variable is buffer-local, the Federico> previous buffer's value will be used. 2 spaces after '.' (here and elsewhere). Federico> (goto-history-element): Use the new function to access the minibuffer Federico> history. Federico> (minibuffer-history-isearch-wrap): Use the new function to access the Federico> minibuffer history. Federico> * src/minibuf.c (read_minibuf): Switch to previous buffer temporarily Federico> before updating history list (Bug#38317). Federico> * etc/NEWS: Announce changes. Federico> --- Federico> etc/NEWS | 6 ++++++ Federico> lisp/simple.el | 18 +++++++++++++----- Federico> src/minibuf.c | 17 +++++++++++++++-- Federico> 3 files changed, 34 insertions(+), 7 deletions(-) Federico> diff --git a/etc/NEWS b/etc/NEWS Federico> index d3331daf17..9dbf36ae40 100644 Federico> --- a/etc/NEWS Federico> +++ b/etc/NEWS Federico> @@ -518,6 +518,12 @@ Note that this key binding will not work on MS-Windows systems if Federico> key binding with an upper case letter - if you can type it, you can Federico> bind it. Federico> +--- Federico> +** 'read-from-minibuffer' now works with buffer-local history variables '.' at end of sentence. Federico> +The HIST argument of 'read-from-minibuffer' now works correctly with Federico> +buffer-local variables. This means that different buffers can have Federico> +their own separated input history list if desired. Federico> + Federico> Federico> * Editing Changes in Emacs 27.1 Federico> diff --git a/lisp/simple.el b/lisp/simple.el Federico> index 2aac557154..0b1d7b73ab 100644 Federico> --- a/lisp/simple.el Federico> +++ b/lisp/simple.el Federico> @@ -2041,7 +2041,7 @@ previous-matching-history-element Federico> (null minibuffer-text-before-history)) Federico> (setq minibuffer-text-before-history Federico> (minibuffer-contents-no-properties))) Federico> - (let ((history (symbol-value minibuffer-history-variable)) Federico> + (let ((history (minibuffer-history-values)) Federico> (case-fold-search Federico> (if (isearch-no-upper-case-p regexp t) ; assume isearch.el is dumped Federico> ;; On some systems, ignore case for file names. Federico> @@ -2141,6 +2141,14 @@ minibuffer-default-add-completions Federico> (append def all) Federico> (cons def (delete def all))))) Federico> +(defun minibuffer-history-values () Federico> + "Return the minibuffer input history values. Federico> +If `minibuffer-history-variable' points to a buffer-local variable and Federico> +the minibuffer is active, return the buffer-local value for the buffer Federico> +selected in the window returned by Federico> `minibuffer-selected-window'." This is a true description of what the code does, but perhaps not clear to users. How about: "for the buffer selected when the minibuffer was activated." Robert