Subject: bug#838: [patch] `russian-computer' input method is wrong at the backslash key

From: Vasily Korytov <[email-masked]>
Date: Sun, 31 Aug 2008 19:19:12 +0400

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

I do `M-x set-input method' and select `russian-computer'. I expect this
keyboard layout to correspond `ru(winkeys)' XKB variant, MS Windows
keyboard layout and other implementations (at least, the comments in
/usr/share/emacs/22.2/leim/quail/cyrillic.el say they it should be so).

Actually, `russian-computer' input method fails to correspond other
implementations (all, that I'm aware of) of Windows-style keyboard
layout: X.org, Linux console, Windows, etc in exactly one key: the
backslash key.

In QWERTY layout, as well as in Emacs `russian-computer' input method it
generates backslash (\) with no modifier and pipe (|) with `Shift'
modifier. In Windows-style Russian keyboard it should generate backslash
(\) with no modifier, but slash (/) with `Shift' modifier.

I know a lot of implementations of this style Russian layout (as opposed
to the typewriter variations), they're all the same and have slash on
shift+backslash. The only exception, I met up to today is Emacs
`russian-computer' input mode.

Attaching the patch to fix this.

Thanks.

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/22.2/etc/DEBUG for instructions.

In GNU Emacs 22.2.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.12.9)
 of 2008-05-23 on xenbuilder2.fedora.redhat.com
Windowing system distributor `The X.Org Foundation', version 11.0.10499905
configured using `configure  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-x-toolkit=gtk' '--with-sound' '--with-toolkit-scroll-bars' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: C
  value of $LC_NUMERIC: C
  value of $LC_TIME: C
  value of $LANG: ru_RU.UTF-8
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  show-paren-mode: t
  iswitchb-mode: t
  encoded-kbd-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  overwrite-mode: overwrite-mode-textual

Recent input:
C-c k C-x C-f / t <tab> c y <tab> <return> C-x 1 C-x 
b <return> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> C-SPC <home> M-w C-x b 
<return> <next> C-s r u s s i a - c o m C-s <backspace> 
<backspace> <backspace> <backspace> <backspace> n - 
c o m C-s <down> <down> <down> <end> <down> <end> <left> 
<left> <left> SPC \ / <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <up> <up> <down> <down> <down> 
<down> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <end> \ | <backspace> 
<backspace> \ / <backspace> <backspace> \ <backspace> 
<next> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <next> <prior> <prior> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <down> <up> C-e <return> C-y <home> <next> 
<down> <next> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> C-e <C-left> C-e <down> <right> C-x C-w 
C-g C-x C-e C-x C-s C-x 1 C-c k M-x e m a c s - r e 
p <tab> <backspace> <backspace> <backspace> <tab> <tab> 
<M-backspace> C-g C-h a b u g <return> C-x o C-x o 
<next> C-x o C-s r e p o r C-s C-s C-s C-s C-s C-s 
C-s C-s C-x o M-x e m a <tab> r e <tab> p <tab> <backspace> 
<backspace> <backspace> C-g M-x r e <tab> p <tab> o 
<tab> <tab> r <tab> <return>

Recent messages:
Wrote /tmp/cyrillic.el.gz
Making completion list...
Quit
Loading apropos...done
Type C-x 1 to remove help window.  
Mark saved where search started
Quit
Making completion list... [3 times]
Loading emacsbug...done
call-interactively: Text is read-only

-- 
   DESKPOT-RIPN