Subject: bug#7927: closed (Re: bug#7927: 23.1; UK Keyboard (pc105-uk) Definition Wrong in quail.el)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 28 Jan 2011 04:43:02 +0000

Your bug report

#7927: 23.1; UK Keyboard (pc105-uk) Definition Wrong in quail.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
7927: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7927
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7927: 23.1; UK Keyboard (pc105-uk) Definition Wrong in quail.el
From: Kenichi Handa <[email-masked]>
To: Richard Wordingham <[email-masked]>
Cc: [email-masked]
Date: Fri, 28 Jan 2011 13:50:18 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

In article <20110126230428.60459a74@JRWUBU2>, Richard Wordingham <[email-masked]> writes:

> When I execute
> (quail-set-keyboard-layout "pc105-uk")

> quail text input methods (e.g thai-kesmanee) cease to work.  (I
> actually encountered the error when coding up a Khmer keyboard.)  When I
> should get the lower character key on a letter key I get the upper
> character, and when I type a shifted character I get the character from
> another key.
[...]
> The bug appears to be that in the definition of
> quail-keyboard-layout-alist in quail.el, there is an extra space in the
> first non-blank line of the keyboard definition of the pc105-uk
> definition.  This bug is also present in Emacs 22.1 (by examination of
> quail.el) and Emacs 23.2 (demonstrated on Windows 7).

Thank you for the report.  I've just installed a fix in
emacs-23 branch.

---
Kenichi Handa
[email-masked]

Subject: 23.1; UK Keyboard (pc105-uk) Definition Wrong in quail.el
From: Richard Wordingham <[email-masked]>
To: [email-masked]
Date: Wed, 26 Jan 2011 23:04:28 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

When I execute

(quail-set-keyboard-layout "pc105-uk")

quail text input methods (e.g thai-kesmanee) cease to work.  (I
actually encountered the error when coding up a Khmer keyboard.)  When I
should get the lower character key on a letter key I get the upper
character, and when I type a shifted character I get the character from
another key.

A key diagnostic is that (length quail-keyboard-layout-standard)
returns 180 (6 rows of 15 characters with 2 shift positions), but
(length quail-keyboard-layout) returns 181 after setting the keyboard.

The other keyboard names (in the version of Emacs 23.1 from which I am
reporting) all yield lengths of 180 characters.

The bug appears to be that in the definition of
quail-keyboard-layout-alist in quail.el, there is an extra space in the
first non-blank line of the keyboard definition of the pc105-uk
definition.  This bug is also present in Emacs 22.1 (by examination of
quail.el) and Emacs 23.2 (demonstrated on Windows 7).

A work around in my .emacs file (for Emacs 23.2, confirmed on Emacs
23.1) is the sequence

(quail-set-keyboard-layout "pc105-uk")
(if (> (length quail-keyboard-layout) (length
quail-keyboard-layout-standard)) (setq quail-keyboard-layout
	  (concat (substring quail-keyboard-layout 0 60)
		  (substring quail-keyboard-layout 61
			     (length quail-keyboard-layout)))))

This chops out the superflous character.  Keyboard then works.

In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.1)
 of 2010-11-23 on rothera, modified by Debian
Windowing system distributor `The X.Org Foundation', version
11.0.10706000 configured using `configure  '--build=i486-linux-gnu'
'--host=i486-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.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim'
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars'
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

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: en_GB.utf8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tpu-edt-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<triple-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> 
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <down-mouse-5> 
<mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <down-mouse-5> 
<mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <help-echo> 
<C-home> <kp-begin> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <send-emacs-bug-report> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
C-g C-x b * G G <backspace> <backspace> <tab> <down-mouse-1> 
<mouse-2> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<down-mouse-1> <mouse-2> <help-echo> <down-mouse-5> 
<mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> 
<down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <help-echo> 
<down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> 
<C-home> <kp-multiply> B U G <return> <left> <left> 
<home> <kp-multiply> b u g C-g <C-home> <kp-multiply> 
b u g <return> <down-mouse-5> <mouse-5> <double-down-mouse-5> 
<double-drag-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> 
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <down-mouse-5> 
<mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <down-mouse-4> <mouse-4> <double-down-mouse-4> 
<double-mouse-4> <down-mouse-5> <mouse-5> <double-down-mouse-5> 
<double-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> 
<double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> 
<triple-down-mouse-5> <triple-mouse-5> <down-mouse-4> 
<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> 
<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> 
<triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> 
<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> 
<triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> 
<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> 
<triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> 
<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> 
<help-echo> <help-echo> <down-mouse-1> <mouse-1> <help-echo> 
C-x b * s <tab> <return> <help-echo> <down-mouse-1> 
<mouse-1> <down-mouse-1> <mouse-1> C-x b g C-x C-b 
<down-mouse-1> <mouse-1> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<down-mouse-1> <mouse-1> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <down-mouse-1> 
<mouse-1> C-j <backspace> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <send-emacs-bug-report> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <menu-bar> <help-menu> <se
nd-emacs-bug-report>

Recent messages:
/usr/bin/mail is not an executable.  Setting mail-interactive to t.
Quit
Making completion list...
uncompressing emacs.gz...done
uncompressing emacs-1.gz...done
Search failed: "BUG" [2 times]
Mark set
Quit
Search failed: "bug"
byte-code: End of buffer
read-buffer-to-switch: Command attempted to use minibuffer while in
minibuffer