[kbd] [PATCH] Fix "compose as usual" for Unicode diacritics

Alexey Gladkov gladkov.alexey at gmail.com
Sat Oct 16 20:21:37 UTC 2010


13.10.2010 19:07, Michael Schutte wrote:
> struct ccc in compose_as_usua[() uses three char members of unspecified
> signedness; in case the compiler decides that they should be signed,
> negative integers will end up in the accent table for c3 > 127.
> 
> Avoid the problem by explicitly using unsigned chars.
> 
> Signed-off-by: Michael Schutte <michi at uiae.at>
> ---
>  src/loadkeys.y |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/loadkeys.y b/src/loadkeys.y
> index c8bb7cc..cc7e2ab 100644
> --- a/src/loadkeys.y
> +++ b/src/loadkeys.y
> @@ -1181,7 +1181,7 @@ compose_as_usual(char *charset) {
>  		exit(1);
>  	} else {
>  		struct ccc {
> -			char c1, c2, c3;
> +			unsigned char c1, c2, c3;
>  		} def_latin1_composes[68] = {
>  			{ '`', 'A', 0300 }, { '`', 'a', 0340 },
>  			{ '\'', 'A', 0301 }, { '\'', 'a', 0341 },

Indeed.

I tried to add the -Wconversion and was horrified (about 368 warnings).

-- 
Rgrds, legion



More information about the kbd mailing list