16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 2003-2004, International Business Machines 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Corporation and others. All Rights Reserved. 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/ 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <unicode/unistr.h> 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <unicode/ustdio.h> 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <unicode/brkiter.h> 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdlib.h> 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_CFUNC int c_main(UFILE *out); 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgvoid printUnicodeString(UFILE *out, const UnicodeString &s) { 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString other = s; 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\"%S\"", other.getTerminatedBuffer()); 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgint main( void ) 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{ 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UFILE *out; 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode status = U_ZERO_ERROR; 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org out = u_finit(stdout, NULL, NULL); 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org if(!out) { 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fprintf(stderr, "Could not initialize (finit()) over stdout! \n"); 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org return 1; 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org } 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ucnv_setFromUCallBack(u_fgetConverter(out), UCNV_FROM_U_CALLBACK_ESCAPE, 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NULL, NULL, NULL, &status); 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org if(U_FAILURE(status)) { 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "Warning- couldn't set the substitute callback - err %s\n", u_errorName(status)); 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org } 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* End Demo boilerplate */ 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out,"ICU Case Mapping Sample Program\n\n"); 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "C++ Case Mapping\n\n"); 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString string("This is a test"); 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* lowercase = "istanbul" */ 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UChar lowercase[] = {0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0}; 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* uppercase = "LATIN CAPITAL I WITH DOT ABOVE STANBUL" */ 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UChar uppercase[] = {0x0130, 0x53, 0x54, 0x41, 0x4e, 0x42, 0x55, 0x4C, 0}; 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString upper(uppercase); 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString lower(lowercase); 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\nstring: "); 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printUnicodeString(out, string); 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string.toUpper(); /* string = "THIS IS A TEST" */ 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\ntoUpper(): "); 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printUnicodeString(out, string); 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string.toLower(); /* string = "this is a test" */ 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\ntoLower(): "); 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printUnicodeString(out, string); 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\n\nlowercase=%S, uppercase=%S\n", lowercase, uppercase); 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string = upper; 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string.toLower(Locale("tr", "TR")); /* Turkish lower case map string = 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org lowercase */ 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\nupper.toLower: "); 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printUnicodeString(out, string); 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string = lower; 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org string.toUpper(Locale("tr", "TR")); /* Turkish upper case map string = 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org uppercase */ 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\nlower.toUpper: "); 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printUnicodeString(out, string); 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fprintf(out, "\nEnd C++ sample\n\n"); 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Call the C version 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int rc = c_main(out); 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org u_fclose(out); 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org return rc; 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 85