[Top][All Lists]

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

Re: Alt as meta, except for certain keys, how?

From: Kevin Rodgers
Subject: Re: Alt as meta, except for certain keys, how?
Date: Mon, 11 Aug 2003 13:54:09 -0600
User-agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv: Gecko/20020406 Netscape6/6.2.2

Ehud Karni wrote:

On Fri, 08 Aug 2003 12:51:59 -0600, Kevin Rodgers <address@hidden> wrote:
Ehud Karni wrote:
On my system it shows for Alt-7:
 Character typed is "7", (octal=20000067, decimal=4194359, hexa=400037)

Just evaluate ?\M-7.  On my system, it is -134217673, which is the crux of the
problem: meta-modified characters may have a negative character code, and thus
may not be a valid index into a char-table.

I did evaluate ?\M-7 and I get the same result (-134217673) as you.
It is NOT what my function returns (4194359) !!!

Hmmm, here's what I get:

Character typed is (No description), (octal=37000000067, decimal=-134217673, hexa=f8000037)

So if you do:
 (define-key key-translation-map [4194359] "|")

key-translation-map takes character arguments, not (vector or string) keys:

Not true, see below.
Because key-translation-map may not exist, you better protect yourself
by adding the following (before the define-key command):
 (if (not key-translation-map)
     (make-sparse-keymap key-translation-map))

key-translation-map is now a char-table, not a keymap (see the Translating Input
node of the Emacs Lisp manual).

I don't know which Emacs are you using, I checked it on 21.2, 21.3. and
21.3.50 (CVS HEAD version). On all the documentation for `
key-translation-map' says:

  Keymap of key translations that can override keymaps.
  This keymap works like `function-key-map', but comes after that,
  and applies even for keys that have ordinary bindings.

I think you confuse it with `keyboard-translate-table' which is
used/created by the `keyboard-translate' command.

Ah, you're correct of course!  Sorry about that.

But the manual says that "The intent of `key-translation-map' is for
users to map one character set to another", so doesn't this count as
abuse (rather than use) of that feature?  It seems odd to me --
backwards, even -- that keyboard-translate-table can't handle all the
events (such as meta-modified characters) that the keyboard can
generate, but that key-translation-map can (even though it is intended
to map only characters).

Kevin Rodgers

reply via email to

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