Mapping From WIN32 Char Type (CT_CTYPE) To OS/2 Char Type (LC_CTYPE)
WIN32 character type that are defined in GetStringType(Ex) API has three categories; CT_CTYPE1, CT_CTYPE2, and CT_CTYPE3. Basically, CT_CTYPE1 definition conforms to XPG/4 character type (LC_CTYPE) definition, but there's some difference in their implementation. CT_CTYPE2 and CT_CTYPE3 are Windows unique character types (at present). Since OS/2 ULS conforms to XPG/4 character type definition, there's a mapping between CT_CTYPE1 and LC_CTYPE, but there's no mapping for CT_CTYPE2 nor CT_CTYPE3.
Open32 supports only CT_CTYPE1 in this release because it is considered that Windows unique character types, CT_CTYPE2 and CT_CTYPE3, are not so important for normal application programs (for the moment) and because supporting such those character types forces Open32 to keep a large character type table inside. But, in future, if such requirement is raised against Open32, it should be resolved by enhancing Open32 and also ULS.
The following table shows the mapping from WIN32 CT_CTYPE to OS/2 LC_CTYPE that is implemented in Open32.
┌────────────────────────────────────────┬────────────────────────────────────────┐ │W IN32 CT_CTYPE │OS/2 LC_TYPE │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_UPPER │upper │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_LOWER │lower │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_DIGIT │digit + FW-DIGIT *1 │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_SPACE │space │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_PUNCT │punct │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_CNTRL │cntrl │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_BLANK │blank + FW-SPACE *1 │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_XDIGIT │xdigit + FW-DIGIT + FW-A~F *1 │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │C1_ALPHA │alpha + KANA + HANGUL + CJK-KANJI *1 │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │all C2_xxxx │Not Supported │ ├────────────────────────────────────────┼────────────────────────────────────────┤ │all C3_xxxx │Not Supported │ └────────────────────────────────────────┴────────────────────────────────────────┘
Note: *1 - FW-DIGIT, FW-SPACE, KANA, HANGUL, CJK-KANJI indicates the following Unicode ranges: (FW- - represents Full Width character.)
FW-DIGIT