Accepting request 593838 from home:sbrabec:branches-kbd-fi-1085432

- Disable characters >=U+F000. These do not work properly
  (bsc#1085432#c15, kbd-unicode-fxxx.patch).

OBS-URL: https://build.opensuse.org/request/show/593838
OBS-URL: https://build.opensuse.org/package/show/Base:System/kbd?expand=0&rev=109
This commit is contained in:
Marcus Meissner 2018-04-11 14:27:34 +00:00 committed by Git OBS Bridge
parent 89bc5885ec
commit 5f91675279
2 changed files with 75 additions and 32 deletions

View File

@ -1,34 +1,71 @@
Partially revert 3f065394 to not fail on ligature fi and other characters with UNICODE code 0xFxxx. Disable characters >=U+F000. These do not work properly.
Index: kbd-2.0.4/src/libkeymap/analyze.l Explanation from Alexey Gladkov:
The kbd value is unsigned short [1] and take a look how kernel gets
a type [2]. The last bytes are occupied by type.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/kd.h?id=06dd3dfeea60e2a6457a6aedf97afc8e6d2ba497#n103
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/keyboard.h?id=06dd3dfeea60e2a6457a6aedf97afc8e6d2ba497#n45
The problem in the kernel. In the kb_value there is no room to store such
values.
Index: kbd-2.0.4/data/keymaps/i386/qwertz/de_alt_UTF-8.map
=================================================================== ===================================================================
--- kbd-2.0.4.orig/src/libkeymap/analyze.l --- kbd-2.0.4.orig/data/keymaps/i386/qwertz/de_alt_UTF-8.map
+++ kbd-2.0.4/src/libkeymap/analyze.l +++ kbd-2.0.4/data/keymaps/i386/qwertz/de_alt_UTF-8.map
@@ -361,11 +361,6 @@ To to|To|TO @@ -160,7 +160,7 @@ shift alt keycode 2 = U+00AC # notsig
} shift alt keycode 3 = U+201D # right double quote
{Unicode} { shift alt keycode 4 = numbersign
yylval->num = strtol(yytext + 1, NULL, 16); shift alt keycode 5 = sterling
- if (yylval->num >= 0xf000) { -shift alt keycode 6 = U+FB01 # fi ligature
- ERR(yyextra, _("unicode keysym out of range: %s"), +#shift alt keycode 6 = U+FB01 # fi ligature
- yytext); shift alt keycode 7 = dead_circumflex
- return(ERROR); shift alt keycode 8 = backslash
- } shift alt keycode 9 = U+02DC # small tilde
return(UNUMBER); @@ -179,7 +179,7 @@ shift alt keycode 23 = Ucircumflex
} shift alt keycode 24 = Ooblique
{Decimal}|{Octal}|{Hex} { shift alt keycode 25 = U+220F # n-ary product
Index: kbd-2.0.4/src/libkeymap/analyze.c shift alt keycode 26 = degree
=================================================================== -shift alt keycode 27 = U+F8FF # apple logo
--- kbd-2.0.4.orig/src/libkeymap/analyze.c +#shift alt keycode 27 = U+F8FF # apple logo
+++ kbd-2.0.4/src/libkeymap/analyze.c shift alt keycode 30 = Aring
@@ -1499,11 +1499,6 @@ YY_RULE_SETUP shift alt keycode 31 = Iacute
#line 362 "analyze.l" shift alt keycode 32 = U+2122 # trade mark
{ @@ -188,7 +188,7 @@ shift alt keycode 34 = Igrave
yylval->num = strtol(yytext + 1, NULL, 16); shift alt keycode 35 = Oacute
- if (yylval->num >= 0xf000) { shift alt keycode 36 = U+0131 # dotless i
- ERR(yyextra, _("unicode keysym out of range: %s"), shift alt keycode 37 = U+02C6 # circumflex accent
- yytext); -shift alt keycode 38 = U+FB02 # fl ligature
- return(ERROR); +#shift alt keycode 38 = U+FB02 # fl ligature
- } shift alt keycode 39 = U+0152 # OE
return(UNUMBER); shift alt keycode 40 = AE
} shift alt keycode 41 = U+201C # left double quote
YY_BREAK @@ -210,7 +210,7 @@ control shift alt keycode 2 = U+00AC
control shift alt keycode 3 = U+201D # right double quote
control shift alt keycode 4 = numbersign
control shift alt keycode 5 = sterling
-control shift alt keycode 6 = U+FB01 # fi ligature
+#control shift alt keycode 6 = U+FB01 # fi ligature
control shift alt keycode 7 = circumflex
control shift alt keycode 8 = backslash
control shift alt keycode 9 = U+02DC # small tilde
@@ -229,7 +229,7 @@ control shift alt keycode 23 = Ucircumf
control shift alt keycode 24 = Ooblique
control shift alt keycode 25 = U+220F # n-ary product
control shift alt keycode 26 = degree
-control shift alt keycode 27 = U+F8FF # apple logo
+#control shift alt keycode 27 = U+F8FF # apple logo
control shift alt keycode 30 = Aring
control shift alt keycode 31 = Iacute
control shift alt keycode 32 = U+2122 # trade mark
@@ -238,7 +238,7 @@ control shift alt keycode 34 = Igrave
control shift alt keycode 35 = Oacute
control shift alt keycode 36 = U+0131 # dotless i
control shift alt keycode 37 = U+02C6 # circumflex accent
-control shift alt keycode 38 = U+FB02 # fl ligature
+#control shift alt keycode 38 = U+FB02 # fl ligature
control shift alt keycode 39 = U+0152 # OE
control shift alt keycode 40 = AE
control shift alt keycode 41 = U+201C # left double quote

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Apr 5 17:32:03 CEST 2018 - sbrabec@suse.com
- Disable characters >=U+F000. These do not work properly
(bsc#1085432#c15, kbd-unicode-fxxx.patch).
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 15 17:04:06 CET 2018 - sbrabec@suse.com Thu Mar 15 17:04:06 CET 2018 - sbrabec@suse.com