emacs-devel
[Top][All Lists]
Advanced

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

Re: weird bug with `Russian-computer'?


From: Paul Pogonyshev
Subject: Re: weird bug with `Russian-computer'?
Date: Mon, 4 Jul 2005 19:03:01 +0300
User-agent: KMail/1.4.3

Juri Linkov wrote:
> > With the `Russian-computer' input method, S-/ combination produces a
> > comma (instead of a question mark with standard English.)  That is OK and
> > the way it should be.
>
> Perhaps you have a US keyboard layout with `?' on the same key as `/'.
> Finnish keyboards have quite a different layout where `?' is on the
> same key as `+', and it is produced by `S-+'.  Other keyboards have
> other layouts, but anyhow I understand how to reproduce the problem.
> What is essential here is to press shift with the `?' key, because the
> `russian-computer' input method maps `?' to `,'.

Yes, I use US and Russian keyboard layouts.

> > However, when I start incremental search, the key works as in
> > English, while the rest of the keyboard keeps producing Russian
> > letters etc.
>
> The root of the problem is in `isearch-mode-map' which binds `?' to
> `isearch-*-char'.  When you type a key corresponding to `?' with
> the input method, `isearch-*-char' intercepts it and interprets as
> the regexp special character `?'.
>
> The following patch fixes this problem by sending the input character
> to `isearch-process-search-char' which takes care of processing the
> character according to the current input method.  Also a new condition
> was added before processing a regexp character.  If an input method is
> active, it processes a regexp character only if a typed character is
> the same with and without an input method, so that all input methods
> that don't redefine regexp characters won't be affected.

Works for me, thanks.  However, why ``only if a typed character is the
same with and without an input method''?  Maybe it should just process
the character _after_ it has been processed/converted by the input method,
as opposed to processing it _before_, as currently.  So, S-7 in `russian-
computer' would trigger special '?' character processing.

(I don't know how input methods works in Emacs, though...)

Paul





reply via email to

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