00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef INC_MI32_UCSTRING_H
00043 #define INC_MI32_UCSTRING_H
00044
00045
00046 #ifndef UCSTRING_H
00047 #define UCSTRING_H
00048
00049 #ifndef INC_MI32_STDDEFNS_H
00050 #include <mi32/stddefns.h>
00051 #endif
00052
00053 #ifndef INC_MI32_TEXTID_H
00054 #include <mi32/textid.h>
00055 #endif
00056
00057 #include <stdio.h>
00058
00059 #if defined(SUN) && defined(BSD)
00060
00061 #include <varargs.h>
00062 #include <sys/stdtypes.h>
00063
00064 #else
00065
00066 #include <stdarg.h>
00067
00068 #endif
00069
00070 #ifdef MISYSTEMDLL
00071 #define LIBEXPORT MI_DLLEXPORT
00072 #else
00073 #define LIBEXPORT MI_DLLIMPORT
00074 #endif
00075
00076
00077
00078 struct MUCEVENTSTATE {
00079 int compose_mode;
00080 int initialized;
00081 int compose_byte1;
00082 int compose_len;
00083 FILE *debug;
00084 int KeyboardCharsetLower128;
00085 int KeyboardCharsetUpper128;
00086 int KeyboardCharset2Byte;
00087 char compose_status[40];
00088 UINT8 compose_temp[80];
00089 };
00090
00091 #if defined(__cplusplus)
00092 extern "C" {
00093 #endif
00094 #ifdef _XLIB_H_
00095
00096
00097
00098
00099 int MucKeyEventToUnicode (XEvent*, MUCEVENTSTATE*, UINT32);
00100 #endif
00101 #if defined(__cplusplus)
00102 }
00103 #endif
00104
00105 #define MUCVERSION 2
00106 #ifndef GENERATING_DOXYGEN_OUTPUT
00107
00108
00109
00110
00111 struct MUCFILEHDR {
00112 UINT32 FileHdrSize;
00113 UINT32 EncHdrSize;
00114 UINT32 Version;
00115 UINT32 NumEncodings;
00116 };
00117
00118 struct MUCENCODEHDR {
00119 UNICODE name[16];
00120 INT32 offset;
00121 INT32 numpairs;
00122 };
00123 #endif // GENERATING_DOXYGEN_OUTPUT
00124
00125
00126
00127
00128 #define MASK_ALG 0x7FFF0000
00129 #define MASK_CHARSET 0x0000FFFF
00130
00131 #define CHARALG_SJIS 0x00010000
00132 #define CHARALG_EUC 0x00020000
00133 #define CHARALG_GL2GR 0x00040000
00134 #define CHARALG_GR2GL 0x00080000
00135
00136 #define CHARSET_Unicode 0x00000000
00137 #define CHARSET_GB_2312 0x00000001
00138 #define CHARSET_GB_12345 0x00000002
00139 #define CHARSET_GB_7589 0x00000003
00140 #define CHARSET_GB_7590 0x00000004
00141 #define CHARSET_GB_Han 0x00000005
00142 #define CHARSET_GB_8565 0x00000006
00143 #define CHARSET_BigFive 0x00000007
00144 #define CHARSET_CNS_11543_01 0x00000008
00145 #define CHARSET_CNS_11543_02 0x00000009
00146 #define CHARSET_CNS_11543_14 0x0000000A
00147 #define CHARSET_JIS_X_0208_1990 0x0000000B
00148 #define CHARSET_JIS_X_0212_1990 0x0000000C
00149 #define CHARSET_KS_C_5601_1987 0x0000000D
00150 #define CHARSET_KS_C_5657_1991 0x0000000E
00151 #define CHARSET_ISO_8859_1 0x0000000F
00152 #define CHARSET_ISO_8859_2 0x00000010
00153 #define CHARSET_ISO_8859_3 0x00000011
00154 #define CHARSET_ISO_8859_4 0x00000012
00155 #define CHARSET_ISO_8859_5 0x00000013
00156 #define CHARSET_ISO_8859_6 0x00000014
00157 #define CHARSET_ISO_8859_7 0x00000015
00158 #define CHARSET_ISO_8859_8 0x00000016
00159 #define CHARSET_ISO_8859_9 0x00000017
00160 #define CHARSET_JIS_ROMAN 0x00000018
00161 #define CHARSET_GB_ROMAN 0x00000019
00162 #define CHARSET_JIS_C_6226 0x0000001A
00163 #define CHARSET_HW_KATAKANA 0x0000001B
00164 #define CHARSET_WinCP_Turk 0x0000001C
00165 #define CHARSET_WinCP_EE 0x0000001D
00166 #define CHARSET_WinCP_Cyrl 0x0000001E
00167 #define CHARSET_WinCP_Greek 0x0000001F
00168 #define CHARSET_WinCP_Arab 0x00000020
00169 #define CHARSET_WinCP_Hebr 0x00000021
00170 #define CHARSET_DOSCP_437 0x00000022
00171 #define CHARSET_DOSCP_850 0x00000023
00172 #define CHARSET_DOSCP_852 0x00000024
00173 #define CHARSET_DOSCP_857 0x00000025
00174 #define CHARSET_DOSCP_861 0x00000026
00175 #define CHARSET_DOSCP_863 0x00000027
00176 #define CHARSET_DOSCP_865 0x00000028
00177 #define CHARSET_IBMCP_869 0x00000029
00178 #define CHARSET_IBMCP_855 0x0000002A
00179 #define CHARSET_IBMCP_864 0x0000002B
00180 #define CHARSET_IBMCP_1040 0x0000002C
00181 #define CHARSET_IBMCP_1041 0x0000002D
00182 #define CHARSET_IBMCP_1043 0x0000002E
00183 #define CHARSET_TIS620_2529 0x0000002F
00184 #define CHARSET_WinCP_Thai 0x00000030
00185 #define CHARSET_MI_Thai 0x00000031
00186 #define CHARSET_WinCP_ANSI 0x00000032
00187 #define CHARSET_ArabicUC 0x00000033
00188 #define CHARSET_MacArabic 0x00000034
00189 #define CHARSET_MacCroatian 0x00000035
00190 #define CHARSET_MacCyrillic 0x00000036
00191 #define CHARSET_MacDingbats 0x00000037
00192 #define CHARSET_MacCentEurope 0x00000038
00193 #define CHARSET_MacGreek 0x00000039
00194 #define CHARSET_MacHebrew 0x0000003A
00195 #define CHARSET_MacIcelandic 0x0000003B
00196 #define CHARSET_MacJapanese 0x0000003C
00197 #define CHARSET_MacRomanian 0x0000003D
00198 #define CHARSET_MacRoman 0x0000003E
00199 #define CHARSET_MacSymbol 0x0000003F
00200 #define CHARSET_MacThai 0x00000040
00201 #define CHARSET_MacTurkish 0x00000041
00202 #define CHARSET_MacUkrainian 0x00000042
00203 #define CHARSET_WinCP_Baltic 0x00000043
00204 #define CHARSET_IBM_1046 0x00000044
00205 #define CHARSET_KS_C_5601_Unif 0x00000045
00206 #define CHARSET_KS_C_5601_1992 0x00000046
00207 #define CHARSET_ISCII_Devanagari 0x00000047
00208 #define CHARSET_ISCII_Bengali 0x00000048
00209 #define CHARSET_ISCII_Gurmukhi 0x00000049
00210 #define CHARSET_ISCII_Gujarati 0x0000004A
00211 #define CHARSET_ISCII_Oriya 0x0000004B
00212 #define CHARSET_ISCII_Tamil 0x0000004C
00213 #define CHARSET_ISCII_Telugu 0x0000004D
00214 #define CHARSET_ISCII_Kannada 0x0000004E
00215 #define CHARSET_ISCII_Malayalam 0x0000004F
00216 #define CHARSET_KOI8 0x00000050
00217 #define CHARSET_MAX 0x00000050
00218
00219
00220 #define CHARSET_ISO_Latin_1 CHARSET_ISO_8859_1
00221 #define CHARSET_ASCII CHARSET_ISO_Latin_1
00222 #define CHARSET_JIS_0208 CHARSET_JIS_X_0208_1990
00223 #define CHARSET_JIS_0212 CHARSET_JIS_X_0212_1990
00224 #define CHARSET_SHIFT_JIS (CHARALG_SJIS | CHARSET_JIS_X_0208_1990)
00225
00226 #define UCCONV_NoByteOrderMark 0x00000001
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237 #ifndef __cplusplus
00238 typedef
00239 #endif
00240 enum CHAR_ENCODING {
00241
00242 CHAR_ENCODING_ASCII = 0,
00243 CHAR_ENCODING_Unicode,
00244 CHAR_ENCODING_UTF8,
00245 CHAR_ENCODING_XResFile,
00246 CHAR_ENCODING_Unicode_Decomposed,
00247 CHAR_ENCODING_UTF8_Decomposed,
00248 CHAR_ENCODING_WindowsMultiByte,
00249
00250
00251 CHAR_ENCODING_ISO_2022 = 100,
00252 CHAR_ENCODING_ISO_8859_1,
00253 CHAR_ENCODING_ISO_8859_2,
00254 CHAR_ENCODING_ISO_8859_3,
00255 CHAR_ENCODING_ISO_8859_4,
00256 CHAR_ENCODING_ISO_8859_5,
00257 CHAR_ENCODING_ISO_8859_6,
00258 CHAR_ENCODING_ISO_8859_7,
00259 CHAR_ENCODING_ISO_8859_8,
00260 CHAR_ENCODING_ISO_8859_9,
00261
00262
00263 CHAR_ENCODING_JIS = 120,
00264 CHAR_ENCODING_EUC,
00265 CHAR_ENCODING_SJIS,
00266 CHAR_ENCODING_Japanese,
00267
00268
00269 CHAR_ENCODING_Big5 = 130,
00270 CHAR_ENCODING_GB_2312,
00271
00272
00273 CHAR_ENCODING_KCS_5601 = 140,
00274
00275
00276 CHAR_ENCODING_ISCII_Devanagari = 150,
00277 CHAR_ENCODING_ISCII_Bengali,
00278 CHAR_ENCODING_ISCII_Gurmukhi,
00279 CHAR_ENCODING_ISCII_Gujarati,
00280 CHAR_ENCODING_ISCII_Oriya,
00281 CHAR_ENCODING_ISCII_Tamil,
00282 CHAR_ENCODING_ISCII_Telugu,
00283 CHAR_ENCODING_ISCII_Kannada,
00284 CHAR_ENCODING_ISCII_Malayalam,
00285
00286
00287 CHAR_ENCODING_WinCP_ANSI = 300,
00288 CHAR_ENCODING_WinCP_Cyrl,
00289 CHAR_ENCODING_WinCP_Greek,
00290 CHAR_ENCODING_WinCP_Arabic,
00291 CHAR_ENCODING_WinCP_Thai,
00292 CHAR_ENCODING_WinCP_EE,
00293 CHAR_ENCODING_WinCP_Turk,
00294 CHAR_ENCODING_WinCP_Hebr,
00295
00296
00297 CHAR_ENCODING_IBMCP_855 = 400,
00298 CHAR_ENCODING_IBMCP_869,
00299
00300
00301 CHAR_ENCODING_DOSCP_437 = 500,
00302 CHAR_ENCODING_DOSCP_850,
00303 CHAR_ENCODING_DOSCP_852,
00304 CHAR_ENCODING_DOSCP_857,
00305 CHAR_ENCODING_DOSCP_861,
00306 CHAR_ENCODING_DOSCP_863,
00307 CHAR_ENCODING_DOSCP_865,
00308
00309
00310 CHAR_ENCODING_MacArabic = 600,
00311 CHAR_ENCODING_MacCroatian,
00312 CHAR_ENCODING_MacCyrillic,
00313 CHAR_ENCODING_MacDingbats,
00314 CHAR_ENCODING_MacCentEurope,
00315 CHAR_ENCODING_MacGreek,
00316 CHAR_ENCODING_MacHebrew,
00317 CHAR_ENCODING_MacIcelandic,
00318 CHAR_ENCODING_MacJapanese,
00319 CHAR_ENCODING_MacRomanian,
00320 CHAR_ENCODING_MacRoman,
00321 CHAR_ENCODING_MacSymbol,
00322 CHAR_ENCODING_MacThai,
00323 CHAR_ENCODING_MacTurkish,
00324 CHAR_ENCODING_MacUkrainian,
00325
00326
00327 CHAR_ENCODING_KOI8 = 700
00328
00329 }
00330 #ifndef __cplusplus
00331 CHAR_ENCODING
00332 #endif
00333 ;
00334
00335
00336 #ifndef __cplusplus
00337 typedef
00338 #endif
00339 enum ENCODELIST_FLAGS {
00340 ENCODELIST_FLAG_Any = 0x0000,
00341 ENCODELIST_FLAG_Importable = 0x0001,
00342 ENCODELIST_FLAG_Exportable = 0x0002,
00343 ENCODELIST_FLAG_Both = 0x0003,
00344 ENCODELIST_FLAG_NoUnicode = 0x0004
00345 }
00346 #ifndef __cplusplus
00347 ENCODELIST_FLAGS
00348 #endif
00349 ;
00350
00351 #ifdef __cplusplus
00352
00353
00354 DEFINE_ENUM_OPERATORS(ENCODELIST_FLAGS)
00355 #endif
00356
00357 #ifndef __cplusplus
00358 typedef
00359 #endif
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370 enum SCRIPTTAG {
00371
00372 SCRIPTTAG_arab = 0x61726162,
00373 SCRIPTTAG_armn = 0x61726D6E,
00374 SCRIPTTAG_beng = 0x62656E67,
00375 SCRIPTTAG_bpmf = 0x62706D66,
00376 SCRIPTTAG_cyrl = 0x6379726C,
00377 SCRIPTTAG_deva = 0x64657661,
00378 SCRIPTTAG_grek = 0x6772656B,
00379 SCRIPTTAG_grgn = 0x6772676E,
00380 SCRIPTTAG_gujr = 0x67756A72,
00381 SCRIPTTAG_hang = 0x68616E67,
00382 SCRIPTTAG_hani = 0x68616E69,
00383 SCRIPTTAG_hebr = 0x68656272,
00384 SCRIPTTAG_kana = 0x6B616E61,
00385 SCRIPTTAG_knbn = 0x6B6E626E,
00386 SCRIPTTAG_knda = 0x6B6E6461,
00387 SCRIPTTAG_laoS = 0x6C616F20,
00388 SCRIPTTAG_latn = 0x6C61746E,
00389 SCRIPTTAG_mlym = 0x6D6C796D,
00390 SCRIPTTAG_orya = 0x6F727961,
00391 SCRIPTTAG_punj = 0x70756E6A,
00392 SCRIPTTAG_taml = 0x74616D6C,
00393 SCRIPTTAG_telu = 0x74656C75,
00394 SCRIPTTAG_thai = 0x74686169,
00395 SCRIPTTAG_tibt = 0x74696174,
00396
00397 SCRIPTTAG_neut = 0x4E455554,
00398 SCRIPTTAG_puse = 0x50555345,
00399 SCRIPTTAG_spcl = 0x5350434C,
00400 SCRIPTTAG_surr = 0x53555252,
00401
00402 SCRIPTTAG_Default = 0x00000000
00403 }
00404 #ifndef __cplusplus
00405 SCRIPTTAG
00406 #endif
00407 ;
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418 #define MucGLYPHFLAG_PartOfRtoLWord 0x01
00419 #define MucGLYPHFLAG_NonJoining 0x80
00420 #define MucGLYPHFLAG_Mark 0x40
00421
00422 #define MucGLYPHDIRECTION_LtoR 0
00423 #define MucGLYPHDIRECTION_RtoL 1
00424 #define MucGLYPHDIRECTION_Weak 2
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436 enum UCCAT {
00437 UCCAT_Cn = 0,
00438 UCCAT_Lu = 1,
00439 UCCAT_Ll = 2,
00440 UCCAT_Lt = 3,
00441 UCCAT_Lm = 4,
00442 UCCAT_Lo = 5,
00443 UCCAT_Mn = 6,
00444 UCCAT_Mc = 7,
00445 UCCAT_Me = 8,
00446 UCCAT_Nd = 9,
00447 UCCAT_Nl = 10,
00448 UCCAT_No = 11,
00449 UCCAT_Zs = 12,
00450 UCCAT_Zl = 13,
00451 UCCAT_Zp = 14,
00452 UCCAT_Cc = 15,
00453 UCCAT_Cf = 16,
00454 UCCAT_Cs = 17,
00455 UCCAT_Co = 18,
00456 UCCAT_Pc = 20,
00457 UCCAT_Pd = 21,
00458 UCCAT_Ps = 22,
00459 UCCAT_Pe = 23,
00460 UCCAT_Pi = 24,
00461 UCCAT_Pf = 25,
00462 UCCAT_Po = 26,
00463 UCCAT_Sm = 27,
00464 UCCAT_Sc = 28,
00465 UCCAT_Sk = 29,
00466 UCCAT_So = 30
00467 };
00468
00469
00470 enum UCCATFLAGS {
00471 UCCATFLAG_Cn = (1 << UCCAT_Cn),
00472 UCCATFLAG_Lu = (1 << UCCAT_Lu),
00473 UCCATFLAG_Ll = (1 << UCCAT_Ll),
00474 UCCATFLAG_Lt = (1 << UCCAT_Lt),
00475 UCCATFLAG_Lm = (1 << UCCAT_Lm),
00476 UCCATFLAG_Lo = (1 << UCCAT_Lo),
00477 UCCATFLAG_Mn = (1 << UCCAT_Mn),
00478 UCCATFLAG_Mc = (1 << UCCAT_Mc),
00479 UCCATFLAG_Me = (1 << UCCAT_Me),
00480 UCCATFLAG_Nd = (1 << UCCAT_Nd),
00481 UCCATFLAG_Nl = (1 << UCCAT_Nl),
00482 UCCATFLAG_No = (1 << UCCAT_No),
00483 UCCATFLAG_Zs = (1 << UCCAT_Zs),
00484 UCCATFLAG_Zl = (1 << UCCAT_Zl),
00485 UCCATFLAG_Zp = (1 << UCCAT_Zp),
00486 UCCATFLAG_Cc = (1 << UCCAT_Cc),
00487 UCCATFLAG_Cf = (1 << UCCAT_Cf),
00488 UCCATFLAG_Cs = (1 << UCCAT_Cs),
00489 UCCATFLAG_Co = (1 << UCCAT_Co),
00490 UCCATFLAG_Pc = (1 << UCCAT_Pc),
00491 UCCATFLAG_Pd = (1 << UCCAT_Pd),
00492 UCCATFLAG_Ps = (1 << UCCAT_Ps),
00493 UCCATFLAG_Pe = (1 << UCCAT_Pe),
00494 UCCATFLAG_Pi = (1 << UCCAT_Pi),
00495 UCCATFLAG_Pf = (1 << UCCAT_Pf),
00496 UCCATFLAG_Po = (1 << UCCAT_Po),
00497 UCCATFLAG_Sm = (1 << UCCAT_Sm),
00498 UCCATFLAG_Sc = (1 << UCCAT_Sc),
00499 UCCATFLAG_Sk = (1 << UCCAT_Sk),
00500 UCCATFLAG_So = (1 << UCCAT_So),
00501 UCCATFLAG_Mi = (1 << 31)
00502 };
00503 #ifdef __cplusplus
00504
00505
00506 DEFINE_ENUM_OPERATORS(UCCATFLAGS)
00507 #endif
00508
00509
00510
00511
00512 enum BIDITAG {
00513 BIDITAG_L = 0,
00514 BIDITAG_LRE = 1,
00515 BIDITAG_LRO = 2,
00516 BIDITAG_R = 3,
00517 BIDITAG_AL = 4,
00518 BIDITAG_RLE = 5,
00519 BIDITAG_RLO = 6,
00520 BIDITAG_PDF = 7,
00521 BIDITAG_EN = 8,
00522 BIDITAG_ES = 9,
00523 BIDITAG_ET = 10,
00524 BIDITAG_AN = 11,
00525 BIDITAG_CS = 12,
00526 BIDITAG_NSM = 13,
00527 BIDITAG_BN = 14,
00528 BIDITAG_B = 15,
00529 BIDITAG_WS = 16,
00530 BIDITAG_ON = 17
00531 };
00532
00533
00534 enum BIDIFLAGS {
00535 BIDIFLAG_L = (1 << BIDITAG_L),
00536 BIDIFLAG_LRE = (1 << BIDITAG_LRE),
00537 BIDIFLAG_LRO = (1 << BIDITAG_LRO),
00538 BIDIFLAG_R = (1 << BIDITAG_R),
00539 BIDIFLAG_AL = (1 << BIDITAG_AL),
00540 BIDIFLAG_RLE = (1 << BIDITAG_RLE),
00541 BIDIFLAG_RLO = (1 << BIDITAG_RLO),
00542 BIDIFLAG_PDF = (1 << BIDITAG_PDF),
00543 BIDIFLAG_EN = (1 << BIDITAG_EN),
00544 BIDIFLAG_ES = (1 << BIDITAG_ES),
00545 BIDIFLAG_ET = (1 << BIDITAG_ET),
00546 BIDIFLAG_AN = (1 << BIDITAG_AN),
00547 BIDIFLAG_CS = (1 << BIDITAG_CS),
00548 BIDIFLAG_NSM = (1 << BIDITAG_NSM),
00549 BIDIFLAG_BN = (1 << BIDITAG_BN),
00550 BIDIFLAG_B = (1 << BIDITAG_B),
00551 BIDIFLAG_WS = (1 << BIDITAG_WS),
00552 BIDIFLAG_ON = (1 << BIDITAG_ON)
00553 };
00554
00555 #ifdef __cplusplus
00556
00557
00558 DEFINE_ENUM_OPERATORS(BIDIFLAGS)
00559 #endif
00560
00561
00562
00563
00564
00565
00566
00567 enum UCDECOMP {
00568 UCDECOMP_NoTag = 0,
00569 UCDECOMP_Initial = 1,
00570 UCDECOMP_Medial = 2,
00571 UCDECOMP_Final = 3,
00572 UCDECOMP_Isolated = 4,
00573 UCDECOMP_Compat = 5,
00574 UCDECOMP_Wide = 6,
00575 UCDECOMP_Narrow = 7,
00576 UCDECOMP_Fraction = 8,
00577 UCDECOMP_Subscript = 9,
00578 UCDECOMP_Superscript = 10,
00579 UCDECOMP_Small = 11,
00580 UCDECOMP_Square = 12,
00581 UCDECOMP_Circle = 13,
00582 UCDECOMP_Font = 14,
00583 UCDECOMP_NoBreak = 15,
00584 UCDECOMP_Vertical = 16
00585 };
00586
00587 #define UCDECOMPFLAG_Initial (1 << UCDECOMP_Initial)
00588 #define UCDECOMPFLAG_Medial (1 << UCDECOMP_Medial)
00589 #define UCDECOMPFLAG_Final (1 << UCDECOMP_Final)
00590 #define UCDECOMPFLAG_Isolated (1 << UCDECOMP_Isolated)
00591 #define UCDECOMPFLAG_PositionMask (UCDECOMPFLAG_Initial | UCDECOMPFLAG_Medial | UCDECOMPFLAG_Final | UCDECOMPFLAG_Isolated)
00592
00593 #ifdef __cplusplus
00594
00595
00596
00597
00598
00599
00600
00601 struct UCDATA {
00602
00603 UNICODE ucval;
00604
00605
00606
00607
00608
00609 UNICODE altcase;
00610
00611
00612
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623 UNICODE firstcomp;
00624
00625
00626
00627
00628
00629 UNICODE nextcomp;
00630
00631
00632
00633
00634
00635 UINT8 category;
00636
00637
00638
00639 UINT8 biditag;
00640
00641
00642 UINT8 decomptag;
00643
00644
00645
00646 UINT8 numcomp;
00647
00648
00649
00650 static const UCDATA* GetCharData (
00651 UNICODE ucval
00652 );
00653
00654
00655
00656
00657
00658
00659 const UNICODE* GetComponants (
00660 ) const {
00661 return (reinterpret_cast<const UNICODE*>(this + 1));
00662 }
00663 };
00664
00665
00666
00667
00668
00669
00670
00671
00672 LIBEXPORT bool ucisprop (
00673 UNICODE c,
00674 UINT32 uccatflags
00675 );
00676
00677 LIBEXPORT bool ucisdecompbidiprop(
00678 UNICODE c,
00679 UINT32 decompflags
00680 );
00681
00682 LIBEXPORT bool ucisbidiprop (
00683 UNICODE c,
00684 UINT32 bidiflags
00685 );
00686
00687 LIBEXPORT UNICODE uctolower (
00688 UNICODE c
00689 );
00690
00691 LIBEXPORT UNICODE uctoupper (
00692 UNICODE c
00693 );
00694
00695
00696
00697
00698 inline bool ucisalpha (UNICODE c) {
00699 return ucisprop(c, UCCATFLAG_Lu | UCCATFLAG_Ll | UCCATFLAG_Lm | UCCATFLAG_Lo | UCCATFLAG_Lt);
00700 }
00701
00702
00703 inline bool ucisdigit2 (UNICODE c) {
00704 return ucisprop(c, UCCATFLAG_Nd);
00705 }
00706
00707
00708 inline bool ucisalnum (UNICODE c) {
00709 return ucisprop(c, UCCATFLAG_Lu | UCCATFLAG_Ll | UCCATFLAG_Lm | UCCATFLAG_Lo | UCCATFLAG_Lt | UCCATFLAG_Nd);
00710 }
00711
00712
00713 inline bool uciscntrl (UNICODE c) {
00714 return ucisprop(c, UCCATFLAG_Cc | UCCATFLAG_Cf);
00715 }
00716
00717
00718 inline bool ucisspace (UNICODE c) {
00719 return ucisprop(c, UCCATFLAG_Zs);
00720 }
00721
00722
00723 inline bool ucisblank (UNICODE c) {
00724 return ucisprop(c, UCCATFLAG_Zs);
00725 }
00726
00727 inline bool ucispunct (UNICODE c) {
00728 return ucisprop(c, UCCATFLAG_Pc | UCCATFLAG_Pd | UCCATFLAG_Ps | UCCATFLAG_Pe | UCCATFLAG_Po | UCCATFLAG_Pi | UCCATFLAG_Pf | UCCATFLAG_Po);
00729 }
00730
00731 inline bool ucisupper (UNICODE c) {
00732 return ucisprop(c, UCCATFLAG_Lu);
00733 }
00734
00735 inline bool ucislower (UNICODE c) {
00736 return ucisprop(c, UCCATFLAG_Ll);
00737 }
00738
00739 inline bool ucistitle (UNICODE c) {
00740 return ucisprop(c, UCCATFLAG_Lt);
00741 }
00742
00743 inline bool ucisisocntrl (UNICODE c) {
00744 return ucisprop(c, UCCATFLAG_Cc);
00745 }
00746
00747 inline bool ucisfmtcntrl (UNICODE c) {
00748 return ucisprop(c, UCCATFLAG_Cf);
00749 }
00750
00751 inline bool ucissymbol (UNICODE c) {
00752 return ucisprop(c, UCCATFLAG_Sm | UCCATFLAG_Sc | UCCATFLAG_So | UCCATFLAG_Sk);
00753 }
00754
00755
00756 inline bool ucisnumber (UNICODE c) {
00757 return ucisprop(c, UCCATFLAG_Nd | UCCATFLAG_No | UCCATFLAG_Nl);
00758 }
00759
00760
00761 inline bool ucisnonspacing (UNICODE c) {
00762 return ucisprop(c, UCCATFLAG_Mn);
00763 }
00764
00765
00766 inline bool ucisopenpunct (UNICODE c) {
00767 return ucisprop(c, UCCATFLAG_Ps);
00768 }
00769
00770
00771 inline bool ucisclosepunct (UNICODE c) {
00772 return ucisprop(c, UCCATFLAG_Pe);
00773 }
00774
00775
00776 inline bool ucisinitialpunct (UNICODE c) {
00777 return ucisprop(c, UCCATFLAG_Pi);
00778 }
00779
00780
00781 inline bool ucisfinalpunct (UNICODE c) {
00782 return ucisprop(c, UCCATFLAG_Pf);
00783 }
00784
00785
00786 inline bool ucisrtl (UNICODE c) {
00787 return ucisbidiprop(c, BIDIFLAG_R | BIDIFLAG_AL);
00788 }
00789
00790
00791 inline bool ucisltr (UNICODE c) {
00792 return ucisbidiprop(c, BIDIFLAG_L);
00793 }
00794
00795
00796 inline bool ucisstrong (UNICODE c) {
00797 return ucisbidiprop(c, BIDIFLAG_L | BIDIFLAG_R | BIDIFLAG_AL);
00798 }
00799
00800
00801 inline bool ucisweak (UNICODE c) {
00802 return ucisbidiprop(c, BIDIFLAG_EN | BIDIFLAG_ES | BIDIFLAG_ET | BIDIFLAG_AN | BIDIFLAG_CS);
00803 }
00804
00805
00806 inline bool ucisneutral (UNICODE c) {
00807 return ucisbidiprop(c, BIDIFLAG_WS | BIDIFLAG_ON);
00808 }
00809
00810
00811
00812 inline bool ucismark (UNICODE c) {
00813 return ucisprop(c, UCCATFLAG_Mn | UCCATFLAG_Mc | UCCATFLAG_Me);
00814 }
00815
00816
00817 inline bool ucismodif (UNICODE c) {
00818 return ucisprop(c, UCCATFLAG_Lm);
00819 }
00820
00821
00822 inline bool ucisconnect (UNICODE c) {
00823 return ucisprop(c, UCCATFLAG_Pc);
00824 }
00825
00826
00827 inline bool ucisdash (UNICODE c) {
00828 return ucisprop(c, UCCATFLAG_Pd);
00829 }
00830
00831
00832 inline bool ucismath (UNICODE c) {
00833 return ucisprop(c, UCCATFLAG_Sm);
00834 }
00835
00836
00837 inline bool uciscurrency (UNICODE c) {
00838 return ucisprop(c, UCCATFLAG_Sc);
00839 }
00840
00841
00842 inline bool ucismodifsymbol (UNICODE c) {
00843 return ucisprop(c, UCCATFLAG_Sk);
00844 }
00845
00846
00847 inline bool ucisnsmark (UNICODE c) {
00848 return ucisprop(c, UCCATFLAG_Mn);
00849 }
00850
00851
00852 inline bool ucisspmark (UNICODE c) {
00853 return ucisprop(c, UCCATFLAG_Mc);
00854 }
00855
00856
00857 inline bool ucisenclosing (UNICODE c) {
00858 return ucisprop(c, UCCATFLAG_Me);
00859 }
00860
00861
00862 inline bool ucislsep (UNICODE c) {
00863 return ucisprop(c, UCCATFLAG_Zl);
00864 }
00865
00866
00867 inline bool ucispsep (UNICODE c) {
00868 return ucisprop(c, UCCATFLAG_Zp);
00869 }
00870
00871
00872 inline bool ucishan (UNICODE c) {
00873 return ((c >= 0x4e00 && c <= 0x9fff) || (c >= 0xf900 && c <= 0xfaff));
00874 }
00875
00876
00877 inline bool ucishangul (UNICODE c) {
00878 return (c >= 0xac00 && c <= 0xd7ff);
00879 }
00880
00881 #endif
00882
00883
00884
00885
00886
00887
00888 #define MTTEXT_NULLIfUnknown 0x00000001
00889
00890
00891
00892 #if defined(__cplusplus)
00893 extern "C" {
00894
00895
00896
00897
00898
00899
00900
00901 #if !defined(DEPRECATE_GROUPKEY) || defined(MISYSTEMDLL)
00902
00903
00904
00905
00906
00907
00908
00909
00910
00911
00912 LIBEXPORT UNICODE* MtTextGetStringUC (
00913 const char* group,
00914 const char* key
00915 );
00916 #endif
00917
00918 #if !defined(DEPRECATE_GROUPKEY) || defined(MISYSTEMDLL)
00919
00920
00921
00922
00923
00924
00925
00926
00927
00928
00929
00930
00931
00932 LIBEXPORT UNICODE* MtTextGetStringExtUC (
00933 const char* group,
00934 const char* key,
00935 UINT32 flags
00936 );
00937 #endif
00938
00939
00940
00941 }
00942 #endif
00943
00944
00945
00946
00947
00948 #if defined(__cplusplus)
00949 extern "C" {
00950 #endif
00951
00952
00953
00954
00955
00956 LIBEXPORT UNICODE* strntouc (
00957 UNICODE *dest,
00958 const char *source,
00959 int len
00960 );
00961
00962
00963
00964
00965
00966 LIBEXPORT UNICODE* strtouc (
00967 UNICODE *dest,
00968 const char *source
00969 );
00970
00971
00972
00973
00974
00975 LIBEXPORT UNICODE* strtouccat (
00976 UNICODE *dest,
00977 const char * source
00978 );
00979
00980
00981
00982
00983
00984
00985 LIBEXPORT UNICODE* strtoucdup (
00986 const char*
00987 );
00988
00989
00990
00991
00992
00993
00994 #ifdef __cplusplus
00995 inline bool ucisdigit (UNICODE digit) {
00996 return (digit >= (UNICODE)'0' && digit <= (UNICODE)'9');
00997 }
00998 #else
00999
01000
01001
01002 #define ucisdigit(x) ((x) >= (UNICODE)'0' && (x) <= (UNICODE)'9')
01003 #endif
01004
01005
01006 LIBEXPORT UNICODE* ucstrcat (
01007 UNICODE *dest,
01008 const UNICODE *source
01009 );
01010
01011
01012
01013
01014
01015 LIBEXPORT UNICODE* ucstrchr (
01016 const UNICODE *p,
01017 UNICODE value
01018 );
01019
01020
01021
01022
01023
01024
01025 LIBEXPORT int ucstrcmp (
01026 const UNICODE *p1,
01027 const UNICODE *p2
01028 );
01029
01030
01031 LIBEXPORT UNICODE* ucstrcpy (
01032 UNICODE *dest,
01033 const UNICODE *source
01034 );
01035
01036
01037 LIBEXPORT UNICODE* ucstrdup (
01038 const UNICODE *s
01039 );
01040
01041
01042 LIBEXPORT size_t ucstrlen (
01043 const UNICODE *p
01044 );
01045
01046
01047
01048
01049
01050
01051 LIBEXPORT int ucstricmp (
01052 const UNICODE *p1,
01053 const UNICODE *p2
01054 );
01055
01056
01057
01058
01059 LIBEXPORT UNICODE* ucstrlwr (UNICODE *p);
01060
01061
01062 LIBEXPORT UNICODE* ucstrncat (
01063 UNICODE *p1,
01064 const UNICODE *p2,
01065 int len
01066 );
01067
01068
01069
01070
01071
01072
01073 LIBEXPORT int ucstrncmp (
01074 const UNICODE *p1,
01075 const UNICODE *p2,
01076 int len
01077 );
01078
01079
01080 LIBEXPORT UNICODE* ucstrncpy (
01081 UNICODE *dest,
01082 const UNICODE *source,
01083 int len
01084 );
01085
01086
01087
01088
01089
01090
01091 LIBEXPORT int ucstrnicmp (
01092 const UNICODE *p1,
01093 const UNICODE *p2,
01094 int len
01095 );
01096
01097
01098
01099
01100
01101 LIBEXPORT UNICODE* ucstrpbrk (
01102 UNICODE *s,
01103 UNICODE *accept
01104 );
01105
01106
01107
01108
01109
01110 LIBEXPORT UNICODE* ucstrrchr (
01111 UNICODE *s,
01112 UNICODE value
01113 );
01114
01115
01116
01117
01118
01119 LIBEXPORT size_t ucstrspn (
01120 const UNICODE *s,
01121 const UNICODE *accept
01122 );
01123
01124
01125
01126
01127
01128 LIBEXPORT UNICODE* ucstrstr (
01129 UNICODE *s,
01130 const UNICODE *p
01131 );
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142