From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.bugs Subject: bug#45474: Icomplete exhibiting in recursive minibuffer when it =?UTF-8?Q?shouldn=E2=80=99t?= Date: Sat, 17 Apr 2021 22:16:16 +0000 Message-ID: <1869622e16dc36c3f2fd@heytings.org> References: <3ed97a9c53e0a5d4fef8@heytings.org> <87fszrz21d.fsf@mail.linkov.net> <3ed97a9c530093aca93d@heytings.org> <7dee3f4235d331cab291@heytings.org> <87r1jatd34.fsf@mail.linkov.net> <7dee3f423551aaf318cb@heytings.org> <87im4kzlfm.fsf@mail.linkov.net> <1869622e16546eafd9df@heytings.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nEwGziF5NE" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39495"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Dario Gjorgjevski , 45474@debbugs.gnu.org, Juri Linkov To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 18 00:17:09 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 1lXtFV-000A9t-Qv for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 18 Apr 2021 00:17:09 +0200 Original-Received: from localhost ([::1]:58556 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lXtFU-000181-Ta for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 17 Apr 2021 18:17:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58820) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lXtFO-00017R-4i for bug-gnu-emacs@gnu.org; Sat, 17 Apr 2021 18:17:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:33302) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lXtFN-0001UE-Tm for bug-gnu-emacs@gnu.org; Sat, 17 Apr 2021 18:17:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lXtFN-0000ep-NK for bug-gnu-emacs@gnu.org; Sat, 17 Apr 2021 18:17:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Gregory Heytings Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 17 Apr 2021 22:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45474 X-GNU-PR-Package: emacs Original-Received: via spool by 45474-submit@debbugs.gnu.org id=B45474.16186977802469 (code B ref 45474); Sat, 17 Apr 2021 22:17:01 +0000 Original-Received: (at 45474) by debbugs.gnu.org; 17 Apr 2021 22:16:20 +0000 Original-Received: from localhost ([127.0.0.1]:44848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lXtEh-0000dk-MQ for submit@debbugs.gnu.org; Sat, 17 Apr 2021 18:16:20 -0400 Original-Received: from heytings.org ([95.142.160.155]:42360) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lXtEg-0000da-4p for 45474@debbugs.gnu.org; Sat, 17 Apr 2021 18:16:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20210101; t=1618697777; bh=cvYk5fzKbwy/QTs6azOIx/DAk5YDNAOZMSnK36jPp0w=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=lnHHt7OOEU9rW5COQoWInlvf2Of/yI2MfBNbAxPq3BtugcgBD3ZzMuSxpZ5Ny3dCJ bnMKcvOte9sD/GX21XfX7bUYGM6Tpb+tAqRq4CHkpZYDaSPP819jNcZYnNTo9Wnpj5 2mc7sb/htPC6QUioO7LLRGSZSdvNNZQVzGbWAnmNjBih6jpjulG0eRfdRtwFaky/k2 fqZX1awX7PYzptI8PXqlM2jhNWSSUc4fQQ4xPz9+tipoxlB4PUhWBf1BsnuG5maNAP Bx9X2Wh8JW++bWwOTiv0MeQqXN9pT8H6243bnha20xSBPHx6zmYSjFHcGahrm1YmHt UZFzJUssu1ETA== In-Reply-To: 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:204276 Archived-At: --nEwGziF5NE Content-Type: text/plain; charset=us-ascii; format=flowed >> What's wrong with my approach, which disables the completion backend on >> demand? > > [ I'm not sure which is "your approach", sorry. ] > See the attached patch. I's a draft, as I said read-from-minibuffer-simple could probably renamed to something more elegant, and (at least some of) the other calls to read-from-minibuffer could be replaced by the macro. >> A variant of it would be to add an eight argument to >> read-from-minibuffer. AFAICS it's only the caller that can know >> whether the completion backend should be used, IOW, the only thing that >> the completion backend can do is to obey the caller. > > We should think hard before adding yet another argument. > Yes ;-) Which is why I did not do that. > > I agree that the current design is problematic. Basically, I think that > `minibuffer-completion-table` should be set buffer-locally in the > minibuffer instead of being "set" by dynamic scoping. > > Fixing the problem "right" might call for a significant redesign of > `read-from-minibuffer`s API and `completing-read`s implementation. > > A quick&dirty workaround for now would be for `completing-read` to set > some var alongside `minibuffer-completion-table` which indicates *which* > minibuffer this is for (e.g. some minibuffer-depth information). This > way `read-from-minibuffer` could distinguish a > `minibuffer-completion-table` passed for the current invocation from one > passed for the outer invocation and could hence temporarily rebind > `minibuffer-completion-table` to nil. > > Another approach would be for `completing-read` not to let-bind those > vars but instead to use `minibuffer-setup-hook` to set the vars > buffer-locally. > These are yet other possible approaches indeed, but it seems to me at first sight that they are more complex than the solution I suggest. --nEwGziF5NE Content-Type: text/x-diff; name=Make-it-possible-to-disable-a-completion-backend-in-.patch Content-Transfer-Encoding: base64 Content-ID: <1869622e16e521f45f8c@heytings.org> Content-Description: Content-Disposition: attachment; filename=Make-it-possible-to-disable-a-completion-backend-in-.patch RnJvbSA5OTA1MGM5NmU3ZmY1MjJhYTFiMTgwOTIwZmFjNzRlOThhMmQ2Yzc5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogR3JlZ29yeSBIZXl0 aW5ncyA8Z3JlZ29yeUBoZXl0aW5ncy5vcmc+DQpEYXRlOiBUaHUsIDE1IEFw ciAyMDIxIDIzOjUwOjI0ICswMDAwDQpTdWJqZWN0OiBbUEFUQ0hdIE1ha2Ug aXQgcG9zc2libGUgdG8gZGlzYWJsZSBhIGNvbXBsZXRpb24gYmFja2VuZCBp biByZWN1cnNpdmUNCiBtaW5pYnVmZmVycw0KDQoqIGxpc3Avc3Vici5lbCAo cmVhZC1mcm9tLW1pbmlidWZmZXItc2ltcGxlKTogTmV3IG1hY3JvLg0KKGRp c2FibGUtZm9yLXJlYWQtZnJvbS1taW5pYnVmZmVyLXNpbXBsZSk6IE5ldyBt YWNyby4NCihyZWFkLWZyb20tbWluaWJ1ZmZlci1zaW1wbGUpOiBOZXcgaW50 ZXJuYWwgdmFyaWFibGUuDQoocmVhZC1udW1iZXIsIHJlYWQtY2hhci1mcm9t LW1pbmlidWZmZXIsIHktb3Itbi1wKTogVXNlIHRoZSBuZXcgbWFjcm8NCg0K KiBsaXNwL3NpbXBsZS5lbCAocmVhZC0tZXhwcmVzc2lvbik6IFVzZSB0aGUg bmV3IG1hY3JvLg0KDQoqIGxpc3AvaWNvbXBsZXRlLmVsIChpY29tcGxldGUt bWluaWJ1ZmZlci1zZXR1cCk6IFVzZSB0aGUgbmV3IG1hY3JvLg0KLS0tDQog bGlzcC9pY29tcGxldGUuZWwgfCAgMSArDQogbGlzcC9zaW1wbGUuZWwgICAg fCAgNiArKystLS0NCiBsaXNwL3N1YnIuZWwgICAgICB8IDI4ICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0NCiAzIGZpbGVzIGNoYW5nZWQsIDI4IGlu c2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9s aXNwL2ljb21wbGV0ZS5lbCBiL2xpc3AvaWNvbXBsZXRlLmVsDQppbmRleCBk NWI2Zjc2ZDdiLi43NjMxM2ViOTFkIDEwMDY0NA0KLS0tIGEvbGlzcC9pY29t cGxldGUuZWwNCisrKyBiL2xpc3AvaWNvbXBsZXRlLmVsDQpAQCAtNDQ2LDYg KzQ0Niw3IEBAIGljb21wbGV0ZS1zaW1wbGUtY29tcGxldGluZy1wDQogKGRl ZnVuIGljb21wbGV0ZS1taW5pYnVmZmVyLXNldHVwICgpDQogICAiUnVuIGlu IG1pbmlidWZmZXIgb24gYWN0aXZhdGlvbiB0byBlc3RhYmxpc2ggaW5jcmVt ZW50YWwgY29tcGxldGlvbi4NCiBVc3VhbGx5IHJ1biBieSBpbmNsdXNpb24g aW4gYG1pbmlidWZmZXItc2V0dXAtaG9vaycuIg0KKyAgKGRpc2FibGUtZm9y LXJlYWQtZnJvbS1taW5pYnVmZmVyLXNpbXBsZSBpY29tcGxldGUtbW9kZSkN CiAgICh3aGVuIChhbmQgaWNvbXBsZXRlLW1vZGUgKGljb21wbGV0ZS1zaW1w bGUtY29tcGxldGluZy1wKSkNCiAgICAgKHNldHEtbG9jYWwgaWNvbXBsZXRl LS1pbml0aWFsLWlucHV0IChpY29tcGxldGUtLWZpZWxkLXN0cmluZykpDQog ICAgIChzZXRxLWxvY2FsIGNvbXBsZXRpb24tc2hvdy1pbmxpbmUtaGVscCBu aWwpDQpkaWZmIC0tZ2l0IGEvbGlzcC9zaW1wbGUuZWwgYi9saXNwL3NpbXBs ZS5lbA0KaW5kZXggOTk5NzU1YTY0Mi4uN2EwOTUzYTkzOSAxMDA2NDQNCi0t LSBhL2xpc3Avc2ltcGxlLmVsDQorKysgYi9saXNwL3NpbXBsZS5lbA0KQEAg LTE3NTUsOSArMTc1NSw5IEBAIHJlYWQtLWV4cHJlc3Npb24NCiAgICAgICAg ICAgKGFkZC1ob29rICdjb21wbGV0aW9uLWF0LXBvaW50LWZ1bmN0aW9ucw0K ICAgICAgICAgICAgICAgICAgICAgIydlbGlzcC1jb21wbGV0aW9uLWF0LXBv aW50IG5pbCB0KQ0KICAgICAgICAgICAocnVuLWhvb2tzICdldmFsLWV4cHJl c3Npb24tbWluaWJ1ZmZlci1zZXR1cC1ob29rKSkNCi0gICAgICAocmVhZC1m cm9tLW1pbmlidWZmZXIgcHJvbXB0IGluaXRpYWwtY29udGVudHMNCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVhZC1leHByZXNzaW9uLW1hcCB0 DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkLWV4cHJlc3Np b24taGlzdG9yeSkpKSkNCisgICAgICAocmVhZC1mcm9tLW1pbmlidWZmZXIt c2ltcGxlIHByb21wdCBpbml0aWFsLWNvbnRlbnRzDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZWFkLWV4cHJlc3Npb24tbWFwIHQN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFkLWV4 cHJlc3Npb24taGlzdG9yeSkpKSkNCiANCiAoZGVmdW4gcmVhZC0tZXhwcmVz c2lvbi10cnktcmVhZCAoKQ0KICAgIlRyeSB0byByZWFkIGFuIEVtYWNzIExp c3AgZXhwcmVzc2lvbiBpbiB0aGUgbWluaWJ1ZmZlci4NCmRpZmYgLS1naXQg YS9saXNwL3N1YnIuZWwgYi9saXNwL3N1YnIuZWwNCmluZGV4IGMyYmUyNmEx NWYuLmQyMjMwZjYwMzQgMTAwNjQ0DQotLS0gYS9saXNwL3N1YnIuZWwNCisr KyBiL2xpc3Avc3Vici5lbA0KQEAgLTI3OTEsNiArMjc5MSwyNiBAQCByZWFk LXBhc3N3ZA0KICAgICAgICAgICAgICAgOzsgQW5kIG9mIGNvdXJzZSwgZG9u J3Qga2VlcCB0aGUgc2Vuc2l0aXZlIGRhdGEgYXJvdW5kLg0KICAgICAgICAg ICAgICAgKGVyYXNlLWJ1ZmZlcikpKSkpKSkpDQogDQorKGRlZnZhciByZWFk LWZyb20tbWluaWJ1ZmZlci1zaW1wbGUgbmlsDQorICAiV2hldGhlciBgcmVh ZC1mcm9tLW1pbmlidWZmZXInIHNob3VsZCBkaXNwbGF5IGNvbXBsZXRpb24g Y2FuZGlkYXRlcy4iKQ0KKw0KKyhkZWZtYWNybyByZWFkLWZyb20tbWluaWJ1 ZmZlci1zaW1wbGUgKCZyZXN0IGJvZHkpDQorICAiUmVhZCBhIHN0cmluZyBm cm9tIHRoZSBtaW5pYnVmZmVyIHdpdGhvdXQgY29tcGxldGlvbi4NCitTZXQg YHJlYWQtZnJvbS1taW5pYnVmZmVyLXNpbXBsZScgdG8gdCwgYW5kIGNhbGwg YHJlYWQtZnJvbS1taW5pYnVmZmVyJywNCit3aGljaCBzZWUuIg0KKyAgYChw cm9nbg0KKyAgICAgKHNldHEgcmVhZC1mcm9tLW1pbmlidWZmZXItc2ltcGxl IHQpDQorICAgICAocmVhZC1mcm9tLW1pbmlidWZmZXIgLEBib2R5KSkpDQor DQorKGRlZm1hY3JvIGRpc2FibGUtZm9yLXJlYWQtZnJvbS1taW5pYnVmZmVy LXNpbXBsZSAoY29tcGxldGlvbi1tb2RlKQ0KKyAgIlNldCBDT01QTEVUSU9O LU1PREUgdG8gbmlsIGZvciBgcmVhZC1mcm9tLW1pbmlidWZmZXItc2ltcGxl Jy4NCitUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgY29tcGxldGlvbiBi YWNrZW5kcyB0byBzZXR1cCB0aGUgbWluaWJ1ZmZlcg0KK3RvIGNvbmRpdGlv bmFsbHkgYWN0aXZhdGUgY29tcGxldGlvbiBpbiBlYWNoIHJlY3Vyc2l2ZSBp bnZvY2F0aW9uIG9mDQordGhlIG1pbmlidWZmZXIsIHdpdGhvdXQgYWZmZWN0 aW5nIG90aGVyIHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucy4iDQorICBgKHdoZW4g cmVhZC1mcm9tLW1pbmlidWZmZXItc2ltcGxlDQorICAgICAoc2V0cS1sb2Nh bCAsY29tcGxldGlvbi1tb2RlIG5pbCkNCisgICAgIChzZXRxIHJlYWQtZnJv bS1taW5pYnVmZmVyLXNpbXBsZSBuaWwpKSkNCisNCiAoZGVmdmFyIHJlYWQt bnVtYmVyLWhpc3RvcnkgbmlsDQogICAiVGhlIGRlZmF1bHQgaGlzdG9yeSBm b3IgdGhlIGByZWFkLW51bWJlcicgZnVuY3Rpb24uIikNCiANCkBAIC0yODEy LDcgKzI4MzIsNyBAQCByZWFkLW51bWJlcg0KIAkJCQkJcHJvbXB0IHQgdCkp KSkNCiAgICAgKHdoaWxlDQogCShwcm9nbg0KLQkgIChsZXQgKChzdHIgKHJl YWQtZnJvbS1taW5pYnVmZmVyDQorCSAgKGxldCAoKHN0ciAocmVhZC1mcm9t LW1pbmlidWZmZXItc2ltcGxlDQogCQkgICAgICBwcm9tcHQgbmlsIG5pbCBu aWwgKG9yIGhpc3QgJ3JlYWQtbnVtYmVyLWhpc3RvcnkpDQogCQkgICAgICAo d2hlbiBkZWZhdWx0DQogCQkJKGlmIChjb25zcCBkZWZhdWx0KQ0KQEAgLTMw NTIsOCArMzA3Miw4IEBAIHJlYWQtY2hhci1mcm9tLW1pbmlidWZmZXINCiAg ICAgICAgICA7OyBQcm90ZWN0IHRoaXMtY29tbWFuZCB3aGVuIGNhbGxlZCBm cm9tIHByZS1jb21tYW5kLWhvb2sgKGJ1ZyM0NTAyOSkNCiAgICAgICAgICAo dGhpcy1jb21tYW5kIHRoaXMtY29tbWFuZCkNCiAgICAgICAgICAocmVzdWx0 DQotICAgICAgICAgIChyZWFkLWZyb20tbWluaWJ1ZmZlciBwcm9tcHQgbmls IG1hcCBuaWwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv ciBoaXN0b3J5ICdlbXB0eS1oaXN0b3J5KSkpDQorICAgICAgICAgIChyZWFk LWZyb20tbWluaWJ1ZmZlci1zaW1wbGUgcHJvbXB0IG5pbCBtYXAgbmlsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIGhp c3RvcnkgJ2VtcHR5LWhpc3RvcnkpKSkNCiAgICAgICAgICAoY2hhcg0KICAg ICAgICAgICAoaWYgKD4gKGxlbmd0aCByZXN1bHQpIDApDQogICAgICAgICAg ICAgICA7OyBXZSBoYXZlIGEgc3RyaW5nICh3aXRoIG9uZSBjaGFyYWN0ZXIp LCBzbyByZXR1cm4gdGhlIGZpcnN0IG9uZS4NCkBAIC0zMjQ3LDcgKzMyNjcs NyBAQCB5LW9yLW4tcA0KICAgICAgICAgICAgICAgICAgICAgICAgbWFwKSkN CiAgICAgICAgICAgICAgOzsgUHJvdGVjdCB0aGlzLWNvbW1hbmQgd2hlbiBj YWxsZWQgZnJvbSBwcmUtY29tbWFuZC1ob29rIChidWcjNDUwMjkpDQogICAg ICAgICAgICAgICh0aGlzLWNvbW1hbmQgdGhpcy1jb21tYW5kKQ0KLSAgICAg ICAgICAgICAoc3RyIChyZWFkLWZyb20tbWluaWJ1ZmZlcg0KKyAgICAgICAg ICAgICAoc3RyIChyZWFkLWZyb20tbWluaWJ1ZmZlci1zaW1wbGUNCiAgICAg ICAgICAgICAgICAgICAgcHJvbXB0IG5pbCBrZXltYXAgbmlsDQogICAgICAg ICAgICAgICAgICAgIChvciB5LW9yLW4tcC1oaXN0b3J5LXZhcmlhYmxlICdl bXB0eS1oaXN0b3J5KSkpKQ0KICAgICAgICAgKHNldHEgYW5zd2VyIChpZiAo bWVtYmVyIHN0ciAnKCJ5IiAiWSIpKSAnYWN0ICdza2lwKSkpKSkNCi0tIA0K Mi4zMC4yDQoNCg== --nEwGziF5NE--