From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_NEUTRAL autolearn=no version=3.2.5 Message-ID: <49E7B8B5.5000302@gmail.com> Date: Fri, 17 Apr 2009 03:01:09 +0400 From: Alexey Gladkov User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8.1.18) Gecko/20081202 Thunderbird/2.0.0.18 Mnenhy/0.7.5.0 MIME-Version: 1.0 To: Linux console tools development discussion References: <20090414174549.GA4174@graeme> <49E5021C.5040703@gmail.com> <20090415135344.GA3881@graeme> <49E676DE.70200@gmail.com> <20090416154504.GA8180@graeme> In-Reply-To: <20090416154504.GA8180@graeme> X-Enigmail-Version: 0.96a Content-Type: multipart/mixed; boundary="------------080307050604090303090802" Subject: Re: [kbd] =?utf-8?q?=5BPATCH=5D_loadkeys=3A_Auto-convert_=E2=80=9Ctra?= =?utf-8?q?ditional=E2=80=9D/Unicode_keysyms?= X-BeenThere: kbd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Linux console tools development discussion List-Id: Linux console tools development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Apr 2009 23:01:32 -0000 Archived-At: List-Archive: This is a multi-part message in MIME format. --------------080307050604090303090802 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 16.04.2009 19:45, Michael Schutte wrote: > Do you do this right after the above commands, or after you restored > Unicode mode? I guess it’s the latter; at least as far as I can see, > the two commands behave identically when they are run in immediate > succession. I tested exactly like that: $ src/unicode_stop $ export LANG=ru_RU.koi8r $ setfont data/consolefonts/koi8r-8x16 # loadkeys data/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map $ < I getting correct chars when I typing a russian text > $ dumpkeys -n > dump-loadkeys.old # src/loadkeys data/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map $ < I getting wrong chars when I typing a russian text > $ dumpkeys -n > dump-loadkeys.new # loadkeys data/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map $ < correct chars again > > charset "koi8-r" > > at the beginning of ruwin_cplk-KOI8-R.map. Can you confirm this? It does not help. But the broken simbols are different. I see difference in "dumpkeys -n" output (see attach). Did I miss something? >> How do you test this patch? > Pretty much the way you do: loadkeys, typing some things, Hmmm ... you typing in what language? > verifying that dumpkeys doesn’t show different results (and if so, whether the > differences are intended by my patch). see attach. > I’d say it should be used just the same way as before, just that it > should work regardless of the input file’s encoding. As long as this > keymap file has a “charset” specification, that is; I have to admit that > I didn’t consider that so many .map files don’t feature such a line. > Still, this shouldn’t be a regression: When the input encoding and the > console mode (XLATE/Unicode) are compatible, my patch shouldn’t change > the behaviour. Your patch will change the behaviour. At least for the russian keymaps will need to add "charset" directive. We have 4 charsets (koi8-r, cp1251, cp855, iso8859-5 and utf8). Without "charset" you do not know what encoding is used in keymap. > The true reason why I want to push this, though, is that Debian’s > version of kbd has had a similar patch since 2004. I want to be completely sure it's working with old keymaps. > I’d like to get rid of this divergence without losing its useful features. This is a good reason. :) > This is why I’ve cleaned it up and why I’m discussing it with you now. I am concerned keymaps legacy. We have a lot of keymaps that are not added to the kbd package. Your patch should support the old behaviour for them. Probably would be better to implement a new option to enable/disable autodetection. > Thanks for you patience :-) No problem :) -- Rgrds, legion --------------080307050604090303090802 Content-Type: application/x-bzip2; name="dump-loadkeys.new.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dump-loadkeys.new.bz2" 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 --------------080307050604090303090802 Content-Type: application/x-bzip2; name="dump-loadkeys.old.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dump-loadkeys.old.bz2" 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 QEf+LuSKcKEhlpAddg== --------------080307050604090303090802--