GNU bug report logs - #12597
24.2.50; Cannot exit read-passwd by C-j/C-m/<return>

Previous Next

Package: emacs;

Reported by: Takafumi Arakaki <aka.tkf <at> gmail.com>

Date: Sun, 7 Oct 2012 17:00:02 UTC

Severity: normal

Found in version 24.2.50

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 12597-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Takafumi Arakaki <aka.tkf <at> gmail.com>
Cc: 12597-done <at> debbugs.gnu.org
Subject: Re: bug#12597: 24.2.50; Cannot exit read-passwd by C-j/C-m/<return>
Date: Sun, 07 Oct 2012 15:34:55 -0400
> Type M-: (read-passwd "> ") RET
> then you cannot finish the prompt by C-j nor C-m nor <return>.
> The only when I found is C-M-c (exit-recursive-edit).  This
> effects for example when typing password to send email using smtpmail.
> This is strange because minibuffer-local-map (parent of read-passwd-map)
> defines exit-minibuffer.

Thanks for the heads up.  Indeed, it got me stumped for a while until
I realized that defconst behaves funny during the dump (it purecopy's
its argument, so we get a snapshot of minibuffer-local-map, taken
before minibuffer-local-map has been populated).
I installed the patch below which seems to fix the problem,


        Stefan


--- lisp/subr.el	2012-10-06 17:29:15 +0000
+++ lisp/subr.el	2012-10-07 19:31:03 +0000
@@ -2143,7 +2143,9 @@
       (setq first nil))
     code))
 
-(defconst read-passwd-map
+(defvar read-passwd-map
+  ;; BEWARE: `defconst' would purecopy it, breaking the sharing with
+  ;; minibuffer-local-map along the way!
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map minibuffer-local-map)
     (define-key map "\C-u" #'delete-minibuffer-contents) ;bug#12570




This bug report was last modified 12 years and 315 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.