emacs-devel
[Top][All Lists]
Advanced

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

infinite loop in encoded-kb/iso-transl (emacs 21.4)


From: Chip Coldwell
Subject: infinite loop in encoded-kb/iso-transl (emacs 21.4)
Date: Fri, 10 Nov 2006 15:37:25 -0500 (EST)


I've run into an infinite loop using utf-8 keyboard encoding with
iso-transl on emacs 21.4.  To reproduce the problem, run

C-x RET k utf-8

followed by

C-x 8 !

The inverted exclamation mark this is expected to produce is key 161. If one evaluates

(key-binding [161])

the result is encoded-kbd-self-insert-ccl.  This function executes a
code conversion language (CCL) program, ccl-decode-mule-utf-8, on the
last-command-char, then sets unread-command-events to the resulting
value.  This value is again 161 (octal 241), as can be verified by
evaluating

(let ((str (char-to-string 161))
      (vec [nil nil nil nil nil nil nil nil nil]))
  (ccl-execute-on-string ccl-decode-mule-utf-8 vec str t))

I think the issue here might be that encoded-kb.el installs a minor
mode keymap for encoded-kbd-mode, and iso-transl.el installs a
key-translation-map.  I don't think we should do both.

Note that if you evaluate

(set-keyboard-coding-system nil)

then

(key-binding [161])

evaluates to self-insert-command and

C-x 8 !

works as expected.

I solicit your comments and advice.

Chip

--
Charles M. "Chip" Coldwell
Senior Software Engineer
Red Hat, Inc
978-392-2426





reply via email to

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