| Viewing file:  legacy.cpp (3.04 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/********************************************************************************
 *
 *   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 *******************************************************************************
 *******************************************************************************
 *
 *   Copyright (C) 2001 - 2005, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
 *   file name:  main.cpp
 *   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
 *   created on: 2001jul24
 *   created by: Vladimir Weinstein
 */
 
 /******************************************************************************
 * main program demonstrating using two versions of ICU in the same project
 ******************************************************************************/
 
 #include <stdio.h>
 #include "unicode/utypes.h"
 #include "unicode/ustring.h"
 
 extern "C" void test_current(UChar data[][5], uint32_t size, uint32_t maxLen, uint8_t keys[][32]);
 extern "C" void test_legacy(UChar data[][5], uint32_t size, uint32_t maxlen, uint8_t keys[][32]);
 
 void printZTUChar(const UChar *str) {
 while(*str != 0) {
 if(*str > 0x1F && *str < 0x80) {
 fprintf(stdout, "%c", (*str) & 0xFF);
 } else {
 fprintf(stdout, "\\u%04X", *str);
 }
 str++;
 }
 }
 
 void printArray(const char* const comment, const UChar UArray[][5], int32_t arraySize) {
 fprintf (stdout, "%s\n", comment);
 int32_t i = 0;
 for(i = 0; i<arraySize; i++) {
 fprintf(stdout, "%d ", i);
 printZTUChar(UArray[i]);
 fprintf(stdout, "\n");
 }
 }
 
 void printKeys(const char *comment, uint8_t keys[][32], int32_t keySize) {
 int32_t i = 0;
 uint8_t *currentKey = NULL;
 fprintf(stdout, "%s\n", comment);
 for(i = 0; i<keySize; i++) {
 currentKey = keys[i];
 while(*currentKey != 0) {
 if(*currentKey == 1) {
 fprintf(stdout, "01 ");
 } else {
 fprintf(stdout, "%02X", *currentKey);
 }
 currentKey++;
 }
 fprintf(stdout, " 00\n");
 }
 }
 
 
 //int main(int argc, const char * const argv[]) {
 int main(int, const char * const *) {
 static const char* test[4] = {
 "\\u304D\\u3085\\u3046\\u0000",
 "\\u30AD\\u30E6\\u30A6\\u0000",
 "\\u304D\\u3086\\u3046\\u0000",
 "\\u30AD\\u30E5\\u30A6\\u0000"
 };
 
 #if 0
 static const char* test2[4] = {
 "dbc\\u0000",
 "cbc\\u0000",
 "bbc\\u0000",
 "abc\\u0000"
 };
 #endif
 
 static UChar uTest[4][5];
 
 static uint8_t keys[4][32];
 
 uint32_t i = 0;
 
 for(i = 0; i<4; i++) {
 u_unescape(test[i], uTest[i], 5);
 }
 printArray("Before current", uTest, 4);
 test_current(uTest, 4, 5, keys);
 printArray("After current", uTest, 4);
 printKeys("Current keys", keys, 4);
 
 for(i = 0; i<4; i++) {
 u_unescape(test[i], uTest[i], 5);
 }
 printArray("Before legacy", uTest, 4);
 test_legacy(uTest, 4, 5, keys);
 printArray("After legacy", uTest, 4);
 printKeys("Legacy keys", keys, 4);
 
 
 return 0;
 }
 
 |