View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003321 | The Dark Mod | Coding | public | 18.02.2013 01:19 | 18.02.2013 01:20 |
Reporter | Zbyl | Assigned To | |||
Priority | normal | Severity | normal | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | SVN | ||||
Summary | 0003321: idStr::ToUpper(), idStr::ToLower() etc. don't work properly | ||||
Description | The following idStr methods work improperly for all languages other than english: ToLower() (all three overloads) ToUpper() (all three overloads) CharIsLower() CharIsUpper() CharIsAlpha() Icmp() Icmpn() IcmpNoColor() And possibly: CharIsPrintable() CheckExtension() IcmpPath() IcmpnPath() | ||||
Additional Information | The reasons are as follows: - some of those functions consider only a-zA-Z to be valid letters (i.e. idStr::ToLower(char c)), - some of those functions consider only a-zA-Z and 0xC0-0xFF to be valid letters (i.e. idStr::ToLower(void)), - functions are inconsistent (compare first two points), - all of those functions assume that BigLetter + ('a' - 'A') == SmallLetter, which is not true in TDM custom codepage. Those functions need to be fixed to work properly on TDM codepage defined on the wiki: http://wiki.thedarkmod.com/index.php?title=I18N_-_Charset Additional difficulty is to support russian codepage. Tasks: - fix functions from the first list (will reduce performance somewhat), - decide what to do with functions from the second list, - find a way to hack in support for russian codepage (which is WIN-1251 with 0xFF remapped to 0xB6, I think). Also the mentioned article on the wiki suggests that Doom 3 supported asian languages, which I can't find any confirmation nor trace of. (Doom 3 BFG supports japanese tough.) | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
18.02.2013 01:19 | Zbyl | New Issue |