summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyril Brulebois <kibi@debian.org>2011-06-03 18:09:48 +0200
committerCyril Brulebois <kibi@debian.org>2011-06-03 18:09:48 +0200
commit408ed1576dbcf93f4bd27bd3b66917b1bba2226b (patch)
treee7247f21d0164bb1498d2463a16e564b91aef638
parentd9bda34d0df576d155e1d682d5e2a382b8e1ffda (diff)
xkb: Fix case checks for Latin 8.
Spotted by -Wlogical-op: | CC xkbfmisc.lo | xkbfmisc.c: In function '_XkbKSCheckCase': | xkbfmisc.c:104:3: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] | xkbfmisc.c:118:3: warning: logical 'and' of mutually exclusive tests is always false [-Wlogical-op] A quick look at the keysymdef.h file (from xproto) suggests the implementor chose to use interval checks to determine the case, but since lines weren't sorted by codepoints, checks were quite wrong. Implement _XkbKSUpper/_XkbKSLower checks based on a grep for CAPITAL/SMALL (respectively) on the Latin 8 part of the said file. Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Cyril Brulebois <kibi@debian.org>
-rw-r--r--xkb/xkbfmisc.c41
1 files changed, 26 insertions, 15 deletions
diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c
index dea347335..1ac9d8262 100644
--- a/xkb/xkbfmisc.c
+++ b/xkb/xkbfmisc.c
@@ -99,23 +99,34 @@ unsigned set,rtrn;
}
break;
case 18: /* latin 8 */
- if ((ks==XK_Babovedot)||
- ((ks>=XK_Dabovedot)&&(ks<=XK_Wacute))||
- ((ks>=XK_Ygrave)&&(ks<=XK_Fabovedot))||
- (ks==XK_Mabovedot)||
- (ks==XK_Pabovedot)||
- (ks==XK_Sabovedot)||
- (ks==XK_Wdiaeresis)||
- ((ks>=XK_Wcircumflex)&&(ks<=XK_Ycircumflex))) {
+ if ((ks==XK_Wcircumflex)||
+ (ks==XK_Ycircumflex)||
+ (ks==XK_Babovedot)||
+ (ks==XK_Dabovedot)||
+ (ks==XK_Fabovedot)||
+ (ks==XK_Mabovedot)||
+ (ks==XK_Pabovedot)||
+ (ks==XK_Sabovedot)||
+ (ks==XK_Tabovedot)||
+ (ks==XK_Wgrave)||
+ (ks==XK_Wacute)||
+ (ks==XK_Wdiaeresis)||
+ (ks==XK_Ygrave)) {
rtrn|= _XkbKSUpper;
}
- if ((ks==XK_babovedot)||
- (ks==XK_dabovedot)||
- (ks==XK_fabovedot)||
- (ks==XK_mabovedot)||
- ((ks>=XK_wgrave)&&(ks<=XK_wacute))||
- (ks==XK_ygrave)||
- ((ks>=XK_wdiaeresis)&&(ks<=XK_ycircumflex))) {
+ if ((ks==XK_wcircumflex)||
+ (ks==XK_ycircumflex)||
+ (ks==XK_babovedot)||
+ (ks==XK_dabovedot)||
+ (ks==XK_fabovedot)||
+ (ks==XK_mabovedot)||
+ (ks==XK_pabovedot)||
+ (ks==XK_sabovedot)||
+ (ks==XK_tabovedot)||
+ (ks==XK_wgrave)||
+ (ks==XK_wacute)||
+ (ks==XK_wdiaeresis)||
+ (ks==XK_ygrave)) {
rtrn|= _XkbKSLower;
}
break;