unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Basil L. Contovounesios" <contovob@tcd.ie>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
Subject: Re: master 695f679: Remove ; ; ; ###tramp-autoload cookie from Tramp defcustoms (Bug#47063)
Date: Sun, 14 Mar 2021 12:59:23 +0000	[thread overview]
Message-ID: <87zgz5uc0k.fsf@tcd.ie> (raw)
In-Reply-To: <87sg4ygmd9.fsf@gmx.de> (Michael Albinus's message of "Sun, 14 Mar 2021 09:39:30 +0100")

[-- Attachment #1: Type: text/plain, Size: 496 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> - The function command-completion-default-include-p checks whether
>>>   completion-predicate is functionp.
>> I think this is *also* needed, tho a better option is
>> `with-demoted-errors` since no matter what error is signal'd we don't
>> want it to prevent `M-x` from doing its job.
> Yes.

Like so?  Or do we want the safety net higher up, e.g. in
read-extended-command or its callers?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Demote-completion-predicate-errors.patch --]
[-- Type: text/x-diff, Size: 1271 bytes --]

From 41cbd533d7fb770ef3ce8a8a88180f9e0e1ecc54 Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <contovob@tcd.ie>
Date: Sun, 14 Mar 2021 12:52:31 +0000
Subject: [PATCH] Demote completion-predicate errors

For discussion, see the following thread:
https://lists.gnu.org/r/emacs-devel/2021-03/msg00682.html

* lisp/simple.el (command-completion-default-include-p): Demote
errors when calling completion-predicate so M-x doesn't break.
---
 lisp/simple.el | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lisp/simple.el b/lisp/simple.el
index 98fccf4ff2..295c01e21f 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2025,7 +2025,12 @@ command-completion-default-include-p
 BUFFER."
   (if (get symbol 'completion-predicate)
       ;; An explicit completion predicate takes precedence.
-      (funcall (get symbol 'completion-predicate) symbol buffer)
+      ;; Demote any errors so M-x continues to work.
+      (condition-case-unless-debug err
+          (funcall (get symbol 'completion-predicate) symbol buffer)
+        (error
+         (message "command-completion-default-include-p: %s: %S" symbol err)
+         nil))
     (or (null (command-modes symbol))
         (command-completion-using-modes-p symbol buffer))))
 
-- 
2.30.1


[-- Attachment #3: Type: text/plain, Size: 169 bytes --]


> I have adapted tramp-crypt.el such a way, that `completion-predicate'
> for `tramp-crypt-add-directory' is set only after loading tramp-crypt.el.

Thanks,

-- 
Basil

  reply	other threads:[~2021-03-14 12:59 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210313133546.6042.78482@vcs0.savannah.gnu.org>
     [not found] ` <20210313133547.AA06C20B2E@vcs0.savannah.gnu.org>
2021-03-13 22:27   ` master 695f679: Remove ; ; ; ###tramp-autoload cookie from Tramp defcustoms (Bug#47063) Basil L. Contovounesios
2021-03-13 23:20     ` Stefan Monnier
2021-03-14  8:39       ` Michael Albinus
2021-03-14 12:59         ` Basil L. Contovounesios [this message]
2021-03-14 14:57           ` Stefan Monnier
2021-03-24 22:19             ` Basil L. Contovounesios
2021-03-25  8:25               ` Michael Albinus
2021-03-26 15:18                 ` Basil L. Contovounesios
2021-03-26 15:24                   ` Michael Albinus
2021-03-25  9:12               ` Lars Ingebrigtsen
2021-03-25 14:05                 ` Stefan Monnier
2021-03-26 11:28                   ` Lars Ingebrigtsen
2021-03-26 13:39                     ` Stefan Monnier
2021-03-26 14:42                       ` Michael Albinus
2021-03-26 18:39                         ` Basil L. Contovounesios
2021-03-26 15:36                       ` Basil L. Contovounesios
2021-03-26 16:37                         ` Stefan Monnier
2021-03-26 18:18                           ` Basil L. Contovounesios
2021-03-26 22:12                       ` Lars Ingebrigtsen
2021-03-26 15:57                     ` Basil L. Contovounesios
2021-03-26 15:33                   ` Basil L. Contovounesios
2021-03-26 16:32                     ` Stefan Monnier
2021-03-26 18:18                       ` Basil L. Contovounesios
2021-03-26 15:27                 ` Basil L. Contovounesios
2021-03-26 22:11                   ` Lars Ingebrigtsen
2021-03-27  1:18                     ` Basil L. Contovounesios
2021-03-27 12:33                       ` Lars Ingebrigtsen
2021-03-27 20:29                         ` Basil L. Contovounesios
2021-03-14 14:57         ` Stefan Monnier
2021-03-14 18:42           ` Michael Albinus
2021-03-14 20:30             ` Stefan Monnier
2021-03-15  9:00               ` Michael Albinus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zgz5uc0k.fsf@tcd.ie \
    --to=contovob@tcd.ie \
    --cc=emacs-devel@gnu.org \
    --cc=michael.albinus@gmx.de \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).