From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#62700: 29.0.60; minibuffer-{previous,next,choose}-completion behave unintuitively when point is not at end of buffer Date: Sun, 03 Sep 2023 20:37:15 +0300 Organization: LINKOV.NET Message-ID: <86edjfyx84.fsf@mail.linkov.net> References: <8635574n10.fsf@mail.linkov.net> <868rema032.fsf@mail.linkov.net> <83r0se4bwf.fsf@gnu.org> <87pm7xkqsd.fsf@catern.com> <83jzy419bk.fsf@gnu.org> <874jourckv.fsf@catern.com> <83lei6mxa0.fsf@gnu.org> <86wn1jutxv.fsf@mail.linkov.net> <83zg6eby5t.fsf@gnu.org> <83r0qjzj22.fsf@gnu.org> <86h6rccz9c.fsf@mail.linkov.net> <83v8fsw0r9.fsf@gnu.org> <86v8fruwur.fsf@mail.linkov.net> <83352vwb6v.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7154"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) Cc: 62700@debbugs.gnu.org, sbaugh@catern.com To: Spencer Baugh Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 03 19:39:18 2023 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 1qcr48-0001ga-W0 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Sep 2023 19:39:16 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qcr3y-0002nZ-Dh; Sun, 03 Sep 2023 13:39:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qcr3u-0002nD-Gv for bug-gnu-emacs@gnu.org; Sun, 03 Sep 2023 13:39:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qcr3u-0000Zo-5X for bug-gnu-emacs@gnu.org; Sun, 03 Sep 2023 13:39:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qcr3t-00012q-HS for bug-gnu-emacs@gnu.org; Sun, 03 Sep 2023 13:39:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 03 Sep 2023 17:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62700 X-GNU-PR-Package: emacs Original-Received: via spool by 62700-submit@debbugs.gnu.org id=B62700.16937626903952 (code B ref 62700); Sun, 03 Sep 2023 17:39:01 +0000 Original-Received: (at 62700) by debbugs.gnu.org; 3 Sep 2023 17:38:10 +0000 Original-Received: from localhost ([127.0.0.1]:46817 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcr34-00011g-Dx for submit@debbugs.gnu.org; Sun, 03 Sep 2023 13:38:10 -0400 Original-Received: from relay9-d.mail.gandi.net ([217.70.183.199]:48331) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcr32-00011Q-T4 for 62700@debbugs.gnu.org; Sun, 03 Sep 2023 13:38:09 -0400 Original-Received: by mail.gandi.net (Postfix) with ESMTPSA id D0053FF803; Sun, 3 Sep 2023 17:38:01 +0000 (UTC) In-Reply-To: (Spencer Baugh's message of "Tue, 13 Jun 2023 16:59:19 -0400") X-GND-Sasl: juri@linkov.net 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:269184 Archived-At: > Without this change, only the minibuffer contents before point are > cleared when a completion is chosen, which results in stray text when > point is in the middle of the minibuffer. > > After this change, we heuristically decide either to clear the whole > buffer or only part of it, taking into account the location of point. > > diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el > index 539206a19e4..d079dc0bcdf 100644 > --- a/lisp/minibuffer.el > +++ b/lisp/minibuffer.el > @@ -2395,7 +2395,11 @@ minibuffer-completion-help > (prefix (unless (zerop base-size) (substring string 0 base-size))) > (base-prefix (buffer-substring (minibuffer--completion-prompt-end) > (+ start base-size))) > - (base-suffix (buffer-substring (point) (point-max))) > + (base-suffix > + (if (eq (alist-get 'category (cdr md)) 'file) > + (buffer-substring (save-excursion (or (search-forward "/" nil t) (point-max))) > + (point-max)) > + "")) As was found in bug#64903, this change broke completion-in-region. For example, with (setq completion-use-base-affixes t) if there is some text in the current buffer after point, then typing 'M-C-i' and selecting a candidate to insert to the buffer, it replaces all the text after point with an empty string. Before this change, the suffix was set to the text after point, and after inserting the selected candidate the suffix was re-inserted to the same buffer.