Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752579AbdC0Luj (ORCPT ); Mon, 27 Mar 2017 07:50:39 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:35714 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752565AbdC0Lu0 (ORCPT ); Mon, 27 Mar 2017 07:50:26 -0400 Subject: Re: [PATCH 2/2] vt: make mouse selection of non-ASCII consistent To: Adam Borowski , Greg Kroah-Hartman , linux-kernel@vger.kernel.org References: <20170327103517.tlvzfuobtjxk2vci@angband.pl> <20170327103704.22171-1-kilobyte@angband.pl> <20170327103704.22171-2-kilobyte@angband.pl> From: Jiri Slaby Message-ID: <761ebed6-eb11-00a6-23ba-1b8114d0b2dd@suse.cz> Date: Mon, 27 Mar 2017 13:50:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170327103704.22171-2-kilobyte@angband.pl> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2245 Lines: 72 On 03/27/2017, 12:37 PM, Adam Borowski wrote: > For some reason a handful of ISO-8859-1 symbols are excluded from "word > chars" while the vast majority of Unicode is hard-coded as included, even > when inappropriate (we really would want to _not_ select line-drawing/etc). > Those symbols are: ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×÷ > > Thus, let's not special-case any non-ASCII anymore. Attempts to set these > via ioctl will be silently ignored. > > As an extra bonus, we debloat the kernel by 128 bytes. > > Signed-off-by: Adam Borowski > --- > drivers/tty/vt/selection.c | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/drivers/tty/vt/selection.c b/drivers/tty/vt/selection.c > index 2252e11d8347..c81c99165ea6 100644 > --- a/drivers/tty/vt/selection.c > +++ b/drivers/tty/vt/selection.c > @@ -80,21 +80,17 @@ void clear_selection(void) > > /* > * User settable table: what characters are to be considered alphabetic? > - * 256 bits. Locked by the console lock. > + * 128 bits. Locked by the console lock. > */ > -static u32 inwordLut[8]={ > +static u32 inwordLut[4]={ No need for the constant here. Let it autosize. > 0x00000000, /* control chars */ > 0x03FFE000, /* digits and "-./" */ > 0x87FFFFFE, /* uppercase and '_' */ > 0x07FFFFFE, /* lowercase */ > - 0x00000000, > - 0x00000000, > - 0xFF7FFFFF, /* latin-1 accented letters, not multiplication sign */ > - 0xFF7FFFFF /* latin-1 accented letters, not division sign */ > }; > > static inline int inword(const u16 c) { > - return c > 0xff || (( inwordLut[c>>5] >> (c & 0x1F) ) & 1); > + return c > 0x7f || (( inwordLut[c>>5] >> (c & 0x1F) ) & 1); > } > > /** > @@ -106,10 +102,10 @@ static inline int inword(const u16 c) { > */ > int sel_loadlut(char __user *p) > { > - u32 tmplut[8]; > - if (copy_from_user(tmplut, (u32 __user *)(p+4), 32)) > + u32 tmplut[4]; ARRAY_SIZE(inwordLut) here. > + if (copy_from_user(tmplut, (u32 __user *)(p+4), 16)) > return -EFAULT; > - memcpy(inwordLut, tmplut, 32); > + memcpy(inwordLut, tmplut, 16); sizeof(inwordLut) here and for copy_from_user too. > return 0; > } thanks, -- js suse labs