/*
*******************************************************************************
*
- * Copyright (C) 2003-2007, International Business Machines
+ * Copyright (C) 2003-2011, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
}
b1[b1Len++] = src[j];
}
- // step 2
- NamePrepTransform* prep = TestIDNA::getInstance(*status);
+ NamePrepTransform* prep = TestIDNA::getInstance(*status);
if(U_FAILURE(*status)){
goto CLEANUP;
}
- b1Len = prep->process(src,srcLength,b1, b1Capacity,allowUnassigned,parseError,*status);
+ // step 2 is performed only if the source contains non ASCII
+ if (!srcIsASCII) {
+ b1Len = prep->process(src,srcLength,b1, b1Capacity,allowUnassigned,parseError,*status);
- if(*status == U_BUFFER_OVERFLOW_ERROR){
- // redo processing of string
- /* we do not have enough room so grow the buffer*/
- b1 = (UChar*) uprv_malloc(b1Len * U_SIZEOF_UCHAR);
- if(b1==NULL){
- *status = U_MEMORY_ALLOCATION_ERROR;
- goto CLEANUP;
- }
+ if(*status == U_BUFFER_OVERFLOW_ERROR){
+ // redo processing of string
+ /* we do not have enough room so grow the buffer*/
+ b1 = (UChar*) uprv_malloc(b1Len * U_SIZEOF_UCHAR);
+ if(b1==NULL){
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ goto CLEANUP;
+ }
- *status = U_ZERO_ERROR; // reset error
+ *status = U_ZERO_ERROR; // reset error
- b1Len = prep->process(src,srcLength,b1, b1Len,allowUnassigned, parseError, *status);
- }
- // error bail out
- if(U_FAILURE(*status)){
- goto CLEANUP;
+ b1Len = prep->process(src,srcLength,b1, b1Len,allowUnassigned, parseError, *status);
+ }
+ // error bail out
+ if(U_FAILURE(*status)){
+ goto CLEANUP;
+ }
}
if(b1Len == 0){
/*
*******************************************************************************
*
- * Copyright (C) 2003-2010, International Business Machines
+ * Copyright (C) 2003-2011, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
}
void TestIDNA::TestCompareReferenceImpl(){
-
+
UChar src [2] = {0,0};
int32_t srcLen = 0;
-
- for(int32_t i = 0x40000 ; i< 0x10ffff; i++){
- if(quick==TRUE && i> 0x1FFFF){
+
+ for (int32_t i = 0; i <= 0x10FFFF; i++){
+ if (quick == TRUE && i > 0x0FFF){
return;
}
- if(i >= 0x30000 && i <= 0xF0000){
- i+=0xB0000;
+ if(i == 0x30000){
+ // jump to E0000, no characters assigned in plain 3 to plain 13 as of Unicode 6.0
+ i = 0xE0000;
}
- if(i>0xFFFF){
- src[0] = U16_LEAD(i);
- src[1] = U16_TRAIL(i);
- srcLen =2;
- }else{
+ if (i > 0xFFFF){
+ src[0] = U16_LEAD(i);
+ src[1] = U16_TRAIL(i);
+ srcLen =2;
+ } else {
src[0] = (UChar)i;
src[1] = 0;
srcLen = 1;