View Issue Details

IDProjectCategoryView StatusLast Update
0003321The Dark ModCodingpublic18.02.2013 01:20
ReporterZbyl Assigned To 
PrioritynormalSeveritynormalReproducibilityalways
Status newResolutionopen 
Product VersionSVN 
Summary0003321: idStr::ToUpper(), idStr::ToLower() etc. don't work properly
DescriptionThe 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 InformationThe 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.)
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
18.02.2013 01:19 Zbyl New Issue