Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.2.6, 6.4.1, 6.5.0 FF
-
None
Description
This is a spin off from QTBUG-109235, please see there for more info.
I have a hard time deciding whether the tolower() call here:
qtvirtualkeyboard/tests/manual/x11vkbwrapper/handlekeyevents.cpp: KeySym keyS = upper ? keySym : static_cast<unsigned long>(tolower(static_cast<int>(keySym)));
is genuinely supposed to map I to ı (LATIN SMALL LETTER DOTLESS I) in the Türkiye locale, or whether it shouldn't still be i. If it is, then the code is wrong, because tolower('I') will likely return I, then, since ı isn't representable. So the code is wrong, either way. The question is what the fix should be.
The code also seems to run into UB, by passing KeySym values unchecked into tolower, which is defined only for [0..255] uchar values, and EOF.
Attachments
Issue Links
- clones
-
QTBUG-109520 Review toupper use [QWindowsKeyMapper]
- Closed
- split from
-
QTBUG-109235 Review toupper/tolower uses [Qt]
- Closed