emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why does `read-multiple-choice' lock user into minbuffer?


From: Karl Fogel
Subject: Why does `read-multiple-choice' lock user into minbuffer?
Date: Thu, 18 Jun 2020 23:47:46 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

When I tried to send an email recently, I got prompted by `nsm-query-user' (in 
lisp/net/nsm.el), as the remote SMTP server I was sending through had rolled 
over its LetsEncrypt certificate during my Emacs session.

This caused me to get prompted with the expected array of choices:

  (a)lways        -> "Accept this certificate this session and for all future 
sessions"
  (s)ession only  -> "Accept this certificate this session only"
  (n)o            -> "Refuse to use this certificate, and close the connection"
  etc, etc

And while the minibuffer asked me for a response, a new "*Network Security 
Manager*" buffer was helpfully displayed in a new window.

I wanted to copy some text from that buffer, so I tried `C-x o' to get over 
there.  But that didn't work: point was locked into the minibuffer.  I tried 
clicking with my mouse in the other window, but that did not bring me to the 
window either.  And since `nsm-query-user' kills the "*Network Security 
Manager*" buffer after the user gives her answer, in the end I had no way to 
copy that text.  I couldn't do it while the buffer was being shown to me, and I 
also couldn't do it after I'd finished responding to `read-multiple-choice' -- 
because by the time control got back to me, the buffer I wanted no longer 
existed.

Now, a local solution to this problem would be to just not kill the buffer at 
the end of `nsm-query-user'.  (Actually, there are two buffers killed there, 
and I don't really see why we should kill either of them at the end -- 
`nsm-query-user' erases them when it needs to.)

But I'd like to understand the more general question too: why does 
`read-multiple-choice' lock the user into the minbuffer so strictly?

Its doc string doesn't say anything about this behavior, and other functions 
that prompt the user (e.g., `find-file') don't enforce minibuffer habitation 
the same way.

Best regards,
-Karl



reply via email to

[Prev in Thread] Current Thread [Next in Thread]