bug-gnu-emacs
[Top][All Lists]
Advanced

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

dead-key keysyms do not work


From: Enrique Perez-Terron
Subject: dead-key keysyms do not work
Date: Mon, 17 Dec 2001 01:44:46 +0100

To: bug-gnu-emacs@gnu.org
Subject: dead-key keysyms do not work
--text follows this line--
This bug report will be sent to the Free Software Foundation,
not to your local site managers!
Please write in English, because the Emacs maintainers do not have
translators to read other languages for them.

Your bug report will be posted to the bug-gnu-emacs@gnu.org mailing list,
and to the gnu.emacs.bug news group.

In GNU Emacs 21.1.1 (sparc-sun-solaris2.7, X toolkit)
 of 2001-11-28 on dev
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  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: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: t

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

Keys with keysyms dead_acute, dead_grave, dead_circumflex
and dead_tilde produce a beep, but do not self-insert
or work as latin-1-prefix input method prefixes.

Other input method prefixes do work as described: " ' / _.

Other characters above 128 present on my keyboard self-
insert normally: §¦¶¹¡£¤½æøåÆØÅ

Notice that the emacs and the X server run on different 
machines:

I am using an X server (Xfree86 version :)
 XFree86 Version 4.1.0 (Red Hat Linux release: 4.1.0-3) / X Window System
 (protocol Version 11, revision 0, vendor release 6510)
 Release Date: 2 June 2001
on an Intel 386 type (really AMD-K6), and running
emacs on a sun sparc.

I have recently modified the X modifier table, this is
the current mode map:
 # xmodmap -pm
 xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

 shift       Shift_L (0x32),  Shift_R (0x3e)
 lock        Caps_Lock (0x42)
 control     Control_L (0x25),  Control_R (0x6d)
 mod1        Alt_L (0x40)
 mod2        Num_Lock (0x4d),  Mode_switch (0x71)
 mod3
 mod4        Super_L (0x73)
 mod5        Scroll_Lock (0x4e)

The change was that I had Mode_switch on both mod1 and mod3,
and then I could not access any character dependent on
the mode switch (third and fourth column in the keymap).

I would like to try and contribute some documentation
in this area, but I need at least pointers to relevant
portions of the emacs source. 

It was very hard to find out of the mode_switch problem,
it took many (>4) hours of internet browsing to find
only a half decent description of how the modifier bits
work. Even the best descriptions are such that if you 
already know it all you see they contain the right words,
but not a coherent explanation. (But the story was 
amazingly complicated too. I am afraid that a strictly
correct description would be very hard to read. I suppose
that a good and helpfull description of the problem area
would be usefull mostly as a step on the way towards
a simpler and cleaner world, rather than actually being
something that every emacs user would want to read.)

I found some posting saying something about a change
in emacs generating the need to change the modifier map,
and waiting for other software to become
correct, but at that time I had not yet read enough
to understand it. (I believe that text too was rather
incomplete.) Later I tried to browse through the change
lists but I could not identify anyting that I could relate to this.

I also tried to search the online emacs manual, but I could not
find anything really relevant, except a hint that I should try
C-x 8, to get iso-transl loaded. At first sight I did not reflect
on the C-x 8 possibility since I still had to press the prefix,
e.g. ~ to get ã. My tilde key did not work. Since other prefixes
alredy worked (e.g. /a => å) i could just not see the point
in pressing C-x 8 first.

Now that I have looked at the "recent input" below I realize
that emacs has correctly identified my keypresses.

During the investigation of the mode_switch problem it occurred
to me that I could get a clue as to what keys emacs thinks I am
pressing by using the describe-key function. Then most of the
time I got M-7 instead of '{'. At some point I got M-'{' instead.

Now I tried describe-key with the dead keys, and got "key is 
not defined" or something similar.

Now I have tried C-x 8 " a - and now the dead keys work too.
I wish this was a standard part of the latin-1 language environment,
that the keys were defined, at least as self-insert.

In the KDE Konsole window (an xterm-alike) the dead-keys are not
dead, they self insert inmediately with the value returned by XLookupString
(I guess). This makes it very hard for the users to know that there is 
anything non-ascii about the circumflex and tilde keys. In fact, when I
ran across this problem I was not really concerned about accented
characters, I wanted to use the acute and grave accents as quatation
marks in a piece of English documentation of a program. Yet I thought
about language environments and input methods because I had 
experienced in the local emacs (version 20.7.1, redhat) that
I sometimes could not put perl operators in my programs until I selected
a language environment. But this time even that did not help.

When I save a file containing 8-bit characters I get a question about
the encoding. I think emacs should either have a default interpretation
of every posible key, or ask the user to enable something if there
are keys that are not defined. A simple beep is not very helpfull,
we need a question and some suggestions that can point our thoughts 
in the right direction(s) even if none of the suggestions are right.
(Emacs does the right thing with the 8-bit chars, I do get my latin-1
interpretation of æøå, for example. How does it know I wanted latin-1?)

Yours Enrique Perez-Terron
enrio@online.no

Recent input:
e s s i n g SPC d i a e r e s i s , SPC a : SPC <dead-diaeresis> 
a <dead-diaeresis> SPC <S-dead-circumflex> SPC <dead-diaeresis> 
<dead-diaeresis> <dead-diaeresis> <dead-diaeresis> 
SPC <backspace> <backspace> <return> <return> P r e 
s s i n g SPC t i l d e , SPC a : SPC <dead-tilde> 
a <return> P r e s i n g SPC <backspace> <backspace> 
<backspace> <backspace> s i n g SPC d i a e r e s i 
s , SPC a : SPC <dead-diaeresis> a <return> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> 
<help-menu> <report-emacs-bug>

Recent messages:
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done
Auto-saving...done



reply via email to

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