GNU bug report logs -
#6212
23.2; ^S^Q^@ --error--> Wrong type argument: characterp, 67108896
Previous Next
Reported by: trentbuck <at> gmail.com (Trent W. Buck)
Date: Tue, 18 May 2010 15:11:02 UTC
Severity: normal
Found in version 23.2
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 6212 in the body.
You can then email your comments to 6212 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6212
; Package
emacs
.
(Tue, 18 May 2010 15:11:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
trentbuck <at> gmail.com (Trent W. Buck)
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 18 May 2010 15:11:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Attempting to insert a literal ^@ control character worked in 23.1.
In 23.2, it results in an error: Wrong type argument: characterp,
67108896
I am typing C-q C-SPC, in Emacs in Screen in linux's fbcon. Since ^@ is
the zeroth character, perhaps this is an off-by-one or overflow error
somewhere. The same error occurs when typing C-q C-@.
The use case is to find high-bit (non-ASCII) characters in a file of
indeterminate Windows codepage encoding. I normally type C-M-s [^ C-q
C-SPC -~] (since ^@ and ~ are the bounds of the ASCII character set).
This no longer works.
In GNU Emacs 23.2.1 (x86_64-pc-linux-gnu)
of 2010-05-16 on barber, modified by Debian
configured using `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim' '--with-x=no' '--without-gconf' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: C
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_AU.utf8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Fundamental
Minor modes in effect:
xterm-mouse-mode: t
ido-everywhere: t
savehist-mode: t
icomplete-mode: t
partial-completion-mode: t
show-paren-mode: t
delete-selection-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
C-s C-q C-@ ESC x r e p o r t SPC e m a c s SPC b u
g RET
Recent messages:
Loading /etc/emacs/site-start.d/50haskell-mode.el (source)...
Loading /usr/share/emacs/site-lisp/haskell-mode/haskell-site-file.el (source)...done
Loading /etc/emacs/site-start.d/50haskell-mode.el (source)...done
Loading /etc/emacs/site-start.d/50paredit-el.el (source)...done
Loading /etc/emacs/site-start.d/50psvn.el (source)...done
Loading /etc/emacs/site-start.d/50puppet-el.el (source)...done
Loading /etc/emacs/site-start.d/50w3m-el-snapshot.el (source)...done
Loading /etc/emacs/site-start.d/51debian-el.el (source)...done
Ido mode enabled
For information about GNU Emacs and the GNU system, type C-h C-a.
isearch-process-search-char: Wrong type argument: characterp, 67108896
Load-path shadows:
/usr/share/emacs/site-lisp/haskell-mode/inf-haskell hides /usr/share/emacs/23.2/site-lisp/haskell-mode/inf-haskell
/usr/share/emacs/site-lisp/haskell-mode/haskell-site-file hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-site-file
/usr/share/emacs/site-lisp/haskell-mode/haskell-simple-indent hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-simple-indent
/usr/share/emacs/site-lisp/haskell-mode/haskell-mode hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-mode
/usr/share/emacs/site-lisp/haskell-mode/haskell-indentation hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-indentation
/usr/share/emacs/site-lisp/haskell-mode/haskell-indent hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-indent
/usr/share/emacs/site-lisp/haskell-mode/haskell-hugs hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-hugs
/usr/share/emacs/site-lisp/haskell-mode/haskell-ghci hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-ghci
/usr/share/emacs/site-lisp/haskell-mode/haskell-font-lock hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-font-lock
/usr/share/emacs/site-lisp/haskell-mode/haskell-doc hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-doc
/usr/share/emacs/site-lisp/haskell-mode/haskell-decl-scan hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-decl-scan
/usr/share/emacs/site-lisp/haskell-mode/haskell-cabal hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-cabal
/usr/share/emacs/site-lisp/haskell-mode/haskell-c hides /usr/share/emacs/23.2/site-lisp/haskell-mode/haskell-c
/usr/share/emacs/23.2/site-lisp/puppet-el/puppet-mode hides /usr/share/emacs/site-lisp/puppet-mode
/usr/share/emacs/23.2/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/23.2/lisp/textmodes/flyspell
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/23.2/lisp/textmodes/ispell
Features:
(shadow sort mail-extr message sendmail regexp-opt ecomplete rfc822 mml
easymenu mml-sec password-cache mm-decode mm-bodies mm-encode mailcap
mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader
gnus-util netrc time-date mm-util mail-prsvr gmm-utils wid-edit
mailheader canlock sha1 hex-util hashcash mail-utils emacsbug
multi-isearch jka-compr edmacro kmacro xt-mouse ido savehist icomplete
complete paren delsel saveplace debian-el debian-el-loaddefs w3m-load
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
dpkg-dev-el dpkg-dev-el-loaddefs ediff-hook vc-hooks lisp-float-type
lisp-mode register page menu-bar rfn-eshadow timer select mldrag mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
loaddefs button minibuffer faces cus-face files text-properties overlay
md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
multi-tty emacs)
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6212
; Package
emacs
.
(Tue, 18 May 2010 16:07:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 6212 <at> debbugs.gnu.org (full text, mbox):
On Tue, May 18, 2010 at 17:10, Trent W. Buck <trentbuck <at> gmail.com> wrote:
> Attempting to insert a literal ^@ control character worked in 23.1.
> In 23.2, it results in an error: Wrong type argument: characterp,
> 67108896
`quoted-insert' is calling `read-quoted-char', which reads C-@ as the
character 0, but then does
(lookup-key local-function-key-map (vector char))
`local-function-key-map' inherits from `function-key-map', which in
23.2 maps C-@ to C-SPC
;; Hitting C-SPC on text terminals, usually sends the ascii code 0 (aka C-@),
;; so we can't distinguish those two keys, but usually we consider C-SPC
;; (rather than C-@) as the "canonical" binding.
(define-key function-key-map [?\C-@] [?\C-\s])
Presumably, by this change:
2009-10-19 Stefan Monnier <monnier <at> iro.umontreal.ca>
* bindings.el (function-key-map): Map C-@ to C-SPC if C-@ is unbound.
Stefan?
Juanma
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6212
; Package
emacs
.
(Tue, 18 May 2010 16:43:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 6212 <at> debbugs.gnu.org (full text, mbox):
trentbuck <at> gmail.com (Trent W. Buck) writes:
> Attempting to insert a literal ^@ control character worked in 23.1.
> In 23.2, it results in an error: Wrong type argument: characterp,
> 67108896
>
> I am typing C-q C-SPC, in Emacs in Screen in linux's fbcon. Since ^@ is
> the zeroth character, perhaps this is an off-by-one or overflow error
> somewhere. The same error occurs when typing C-q C-@.
Yes, I can reproduce this on text-terminals. It appears to be due to
the following change:
2009-10-19 Stefan Monnier <monnier <at> iro.umontreal.ca>
* bindings.el (function-key-map): Map C-@ to C-SPC if C-@ is unbound.
which added the following to bindings.el:
;; Hitting C-SPC on text terminals, usually sends the ascii code 0 (aka C-@),
;; so we can't distinguish those two keys, but usually we consider C-SPC
;; (rather than C-@) as the "canonical" binding.
(define-key function-key-map [?\C-@] [?\C-\s])
Stefan, could you take a look? I don't know your original motivation
for this change, so I don't know how to fix it.
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6212
; Package
emacs
.
(Tue, 18 May 2010 20:33:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 6212 <at> debbugs.gnu.org (full text, mbox):
>> Attempting to insert a literal ^@ control character worked in 23.1.
>> In 23.2, it results in an error: Wrong type argument: characterp,
>> 67108896
>> I am typing C-q C-SPC, in Emacs in Screen in linux's fbcon. Since ^@ is
>> the zeroth character, perhaps this is an off-by-one or overflow error
>> somewhere. The same error occurs when typing C-q C-@.
> * bindings.el (function-key-map): Map C-@ to C-SPC if C-@ is unbound.
[...]
> Stefan, could you take a look? I don't know your original motivation
> for this change, so I don't know how to fix it.
Indeed, that's part of the culprit. The reason for the remapping is
that as the comment tries to explain many terminals send C-@ when the
user hits C-SPC, so rather than bind commands to both <prefix> C-SPC and
<prefix> C-@, it's much better to let key remapping handling it once and
for all. The "canonical" binding is for C-SPC, so we want to remap C-@
to C-SPC rather than the other way around.
But note that C-q C-SPC works just fine, so the remapping from
C-@ to C-SPC is not really the core problem.
I think the patch I just installed (appended) will fix things.
Can you confirm?
Stefan
=== modified file 'lisp/subr.el'
--- lisp/subr.el 2010-05-15 13:23:48 +0000
+++ lisp/subr.el 2010-05-18 20:25:28 +0000
@@ -1868,16 +1868,14 @@
(if inhibit-quit (setq quit-flag nil)))
;; Translate TAB key into control-I ASCII character, and so on.
;; Note: `read-char' does it using the `ascii-character' property.
- ;; We could try and use read-key-sequence instead, but then C-q ESC
- ;; or C-q C-x might not return immediately since ESC or C-x might be
- ;; bound to some prefix in function-key-map or key-translation-map.
+ ;; We could try and use read-key instead.
+ (let ((translation (lookup-key local-function-key-map (vector char))))
+ (if (arrayp translation)
+ (setq translated (aref translation 0))))
(setq translated
(if (integerp char)
(char-resolve-modifiers char)
char))
- (let ((translation (lookup-key local-function-key-map (vector char))))
- (if (arrayp translation)
- (setq translated (aref translation 0))))
(cond ((null translated))
((not (integerp translated))
(setq unread-command-events (list char)
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#6212
; Package
emacs
.
(Tue, 18 May 2010 20:53:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 6212 <at> debbugs.gnu.org (full text, mbox):
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
> Indeed, that's part of the culprit. The reason for the remapping is
> that as the comment tries to explain many terminals send C-@ when the
> user hits C-SPC, so rather than bind commands to both <prefix> C-SPC and
> <prefix> C-@, it's much better to let key remapping handling it once and
> for all. The "canonical" binding is for C-SPC, so we want to remap C-@
> to C-SPC rather than the other way around.
>
> But note that C-q C-SPC works just fine, so the remapping from
> C-@ to C-SPC is not really the core problem.
>
> I think the patch I just installed (appended) will fix things.
> Can you confirm?
Yes, it fixes the bug. Thanks.
Reply sent
to
Stefan Monnier <monnier <at> iro.umontreal.ca>
:
You have taken responsibility.
(Wed, 19 May 2010 01:57:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
trentbuck <at> gmail.com (Trent W. Buck)
:
bug acknowledged by developer.
(Wed, 19 May 2010 01:57:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 6212-done <at> debbugs.gnu.org (full text, mbox):
>> I think the patch I just installed (appended) will fix things.
>> Can you confirm?
> Yes, it fixes the bug. Thanks.
Thanks, closed,
Stefan
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 16 Jun 2010 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 15 years and 63 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.