From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Pogonyshev Newsgroups: gmane.emacs.devel Subject: Re: weird bug with `Russian-computer'? Date: Mon, 4 Jul 2005 19:03:01 +0300 Message-ID: <200507041903.01060.pogonyshev@gmx.net> References: <200507040027.59478.pogonyshev@gmx.net> <87fyuvtgox.fsf@jurta.org> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1120494978 2440 80.91.229.2 (4 Jul 2005 16:36:18 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 4 Jul 2005 16:36:18 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jul 04 18:36:17 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DpTvI-0003pZ-MS for ged-emacs-devel@m.gmane.org; Mon, 04 Jul 2005 18:35:57 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DpTwV-0000kQ-HT for ged-emacs-devel@m.gmane.org; Mon, 04 Jul 2005 12:37:11 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DpTpD-0005Im-GX for emacs-devel@gnu.org; Mon, 04 Jul 2005 12:29:39 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DpTpA-0005Gu-JE for emacs-devel@gnu.org; Mon, 04 Jul 2005 12:29:38 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DpTlw-0002yM-9n for emacs-devel@gnu.org; Mon, 04 Jul 2005 12:26:16 -0400 Original-Received: from [213.165.64.20] (helo=mail.gmx.net) by monty-python.gnu.org with smtp (Exim 4.34) id 1DpTUh-0001v0-Hi for emacs-devel@gnu.org; Mon, 04 Jul 2005 12:08:27 -0400 Original-Received: (qmail invoked by alias); 04 Jul 2005 16:02:15 -0000 Original-Received: from unknown (EHLO localhost.localdomain) [195.222.81.22] by mail.gmx.net (mp007) with SMTP; 04 Jul 2005 18:02:15 +0200 X-Authenticated: #16844820 Original-To: Juri Linkov User-Agent: KMail/1.4.3 In-Reply-To: <87fyuvtgox.fsf@jurta.org> X-Y-GMX-Trusted: 0 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:40343 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:40343 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