GNU bug report logs - #24635
24.5; Missing preview of entered unicode codepoints (C-q codepoint SPC)

Previous Next

Package: emacs;

Reported by: Qqwy/W-M <qqwy <at> gmx.com>

Date: Fri, 7 Oct 2016 10:51:01 UTC

Severity: normal

Tags: confirmed

Merged with 17987

Found in versions 24.3.92, 24.5, 25.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 24635 <at> debbugs.gnu.org, qqwy <at> gmx.com
Subject: bug#24635: 24.5; Missing preview of entered unicode codepoints (C-q codepoint SPC)
Date: Mon, 21 Nov 2016 18:13:24 +0200
> Date: Fri, 07 Oct 2016 15:35:50 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 24635 <at> debbugs.gnu.org
> 
> > From: Qqwy/W-M <qqwy <at> gmx.com>
> > Date: Fri, 7 Oct 2016 11:53:41 +0200
> > 
> > Today I learned from [this video
> > tutorial](https://youtu.be/3hwUnhdKWiI?t=4m27s), (link to the time with
> > exact explanation) of this feature that you can type C-q, followed by
> > the octal(or, if configured, decimal or hexadecimal) unicode codepoint,
> > followed by a non-digit key, to insert the appropriate unicode character.
> > 
> > However, for some reason, these typed codepoints do not show up in the
> > echo bar at the far bottom, making it very easy to mistype.
> 
> This bug was introduced in Emacs 24.4.  Further bisection is welcome.

The reason is this commit:

  commit 321e1a9c4283e1fd1db5a6b7c75325d5ed7b97e1
  Author:     Stefan Monnier <monnier <at> iro.umontreal.ca>
  AuthorDate: Fri Jul 5 20:10:54 2013 -0400
  Commit:     Stefan Monnier <monnier <at> iro.umontreal.ca>
  CommitDate: Fri Jul 5 20:10:54 2013 -0400

      * lisp/subr.el (read-quoted-char): Use read-key.
      (sit-for): Let read-event decode tty input.

      Fixes: debbugs:14782

Only the second part of the change is AFAIU actually related to
bug#14782.  The change in read-quoted-char (and in at least one more
place not even mentioned in the log) is due to some general issue with
read-event that is hinted at in the comment in sit-for added by this
commit.

If I replace the call to read-key in read-quoted-char with an
equivalent call to read-event, the "C-q" echoing is back.

Stefan, do you see a way to make read-key or the functions it calls
echo the input characters?  I didn't see a way to do that, but maybe I
missed something.

Failing that, I'm inclined to go back to using read-event in
read-quoted-char.  After all, we didn't have any bug reports due to
that, and the echo is a valuable feature, IMO.

A somewhat kludgy alternative is something like the patch below, but
I'm not sure it's justified here.  (It doesn't exactly restore
previous behavior, because the initial "C-q-" prompt appears
immediately, rather than after read-key-delay, but it's close.)

--- lisp/simple.el~0	2016-10-25 07:30:02.000000000 +0300
+++ lisp/simple.el	2016-11-21 10:11:35.430192000 +0200
@@ -776,7 +776,7 @@
 	    (let (translation-table-for-input input-method-function)
 	      (if (or (not overwrite-mode)
 		      (eq overwrite-mode 'overwrite-mode-binary))
-		  (read-quoted-char)
+		  (read-quoted-char (key-description (this-command-keys)))
 		(read-char))))))
     ;; This used to assume character codes 0240 - 0377 stand for
     ;; characters in some single-byte character set, and converted them




This bug report was last modified 8 years and 240 days ago.

Previous Next


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