Exemple #1
0
static void 
alias_write_java(struct SResource *res,UErrorCode *status) {
    static const char str[] = "new ICUListResourceBundle.Alias(";
    write_tabs(out);
    T_FileStream_write(out,str,uprv_strlen(str));
    
    /*str_write_java(res->u.fString.fChars,res->u.fString.fLength,FALSE,status);*/
    /*if(*res->u.fString.fChars == RES_PATH_SEPARATOR) {*/
        /* there is a path included 
        locale = u_strchr(res->u.fString.fChars +1, RES_PATH_SEPARATOR);
        *locale = 0;
        locale++;
        
        T_FileStream_write(out,"\"/",2);
        T_FileStream_write(out,apName,(int32_t)uprv_strlen(apName));
        T_FileStream_write(out,"/",1);
        T_FileStream_write(out,abName,(int32_t)uprv_strlen(abName));
        T_FileStream_write(out,"/\"+",3);
        str_write_java(locale,res->u.fString.fLength-(locale-res->u.fString.fChars),FALSE,status);
    } else {
        str_write_java(res->u.fString.fChars,res->u.fString.fLength,FALSE,status);
    }*/
    
    str_write_java(res->u.fString.fChars,res->u.fString.fLength,FALSE,status);
    
    T_FileStream_write(out,"),\n",3);
}
/* Writing Functions */
static void
string_write_java(struct SResource *res,UErrorCode *status) {

    str_write_java(res->u.fString.fChars,res->u.fString.fLength,TRUE,status);
    
	if(res->fKey > 0 && uprv_strcmp(srBundle->fKeys+res->fKey,"Rule")==0)
	{
        UChar* buf = (UChar*) uprv_malloc(sizeof(UChar)*res->u.fString.fLength);
        uprv_memcpy(buf,res->u.fString.fChars,res->u.fString.fLength);
        uprv_free(buf);
    }

}
Exemple #3
0
/* Writing Functions */
static void 
string_write_java(struct SResource *res,UErrorCode *status) {       
    if(uprv_strcmp(srBundle->fKeys+res->fKey,"%%UCARULES")==0 ){
        char fileName[1024] ={0};
        const char* file = "UCARules.utf8";
        FileStream* datFile = NULL;
        const char* type = "new ICUListResourceBundle.ResourceString(";
        char* dest  = (char*) uprv_malloc( 8 * res->u.fString.fLength);
        int32_t len = 0;
        if(outDir){
            uprv_strcat(fileName,outDir);
            if(outDir[uprv_strlen(outDir)-1]!=U_FILE_SEP_CHAR){
                uprv_strcat(fileName,U_FILE_SEP_STRING);
            }
        }
        uprv_strcat(fileName,file);/* UCARULES.utf8 UTF-8 file */
        
        write_tabs(out);

        T_FileStream_write(out, type, (int32_t)uprv_strlen(type));
        T_FileStream_write(out, "\"", 1);
        T_FileStream_write(out, file, (int32_t)uprv_strlen(file));
        T_FileStream_write(out, "\")\n", 3);
        datFile=T_FileStream_open(fileName,"w");
        
        if(!dest){
            *status=U_MEMORY_ALLOCATION_ERROR;
        }
        
        u_strToUTF8(dest,8*res->u.fString.fLength,&len,res->u.fString.fChars,res->u.fString.fLength,status);
        if(U_FAILURE(*status)){
            T_FileStream_close(datFile);
            uprv_free(dest);
            return;
        }
        T_FileStream_write(datFile,dest,len);
        T_FileStream_close(datFile);
        uprv_free(dest);
           
    }else{
        str_write_java(res->u.fString.fChars,res->u.fString.fLength,TRUE,status);

        if(uprv_strcmp(srBundle->fKeys+res->fKey,"Rule")==0){
            UChar* buf = (UChar*) uprv_malloc(sizeof(UChar)*res->u.fString.fLength);
            uprv_memcpy(buf,res->u.fString.fChars,res->u.fString.fLength);      
            uprv_free(buf);
        }
    }

}
Exemple #4
0
/* Writing Functions */
static void
string_write_java(struct SResource *res,UErrorCode *status) {
    char resKeyBuffer[8];
    const char *resname = res_getKeyString(srBundle, res, resKeyBuffer);

    str_write_java(res->u.fString.fChars,res->u.fString.fLength,TRUE,status);
    
	if(resname != NULL && uprv_strcmp(resname,"Rule")==0)
	{
        UChar* buf = (UChar*) uprv_malloc(sizeof(UChar)*res->u.fString.fLength);
        uprv_memcpy(buf,res->u.fString.fChars,res->u.fString.fLength);
        uprv_free(buf);
    }

}
Exemple #5
0
/* Writing Functions */
static void
string_write_java(const StringResource *res,UErrorCode *status) {
    (void)res->getKeyString(srBundle);

    str_write_java(res->getBuffer(), res->length(), TRUE, status);
}
Exemple #6
0
static void 
bin_write_java( struct SResource *res, UErrorCode *status) {
    const char* type = "new ICUListResourceBundle.CompressedBinary(";
    const char* ext;
    int32_t srcLen=res->u.fBinaryValue.fLength;

    if(srcLen>0 ){
        uint16_t* target=NULL;
        uint16_t* saveTarget = NULL;
        int32_t tgtLen = 0;

        if(uprv_strcmp(srBundle->fKeys+res->fKey,"%%CollationBin")==0 || uprv_strcmp(srBundle->fKeys+res->fKey,"BreakDictionaryData")==0){
            char fileName[1024] ={0};
            char fn[1024] =  {0};
            FileStream* datFile = NULL;
            if(uprv_strcmp(srBundle->fKeys+res->fKey,"BreakDictionaryData")==0){
                uprv_strcat(fileName,"BreakDictionaryData");
                ext = ".brk";
            }else{
                uprv_strcat(fileName,"CollationElements");
                ext=".col";
            }
            if(uprv_strcmp(srBundle->fLocale,"root")!=0){
                uprv_strcat(fileName,"_");
                uprv_strcat(fileName,srBundle->fLocale);
            }
            
            uprv_strcat(fileName,ext);
            if(outDir ){
                uprv_strcat(fn,outDir);
                if(outDir[uprv_strlen(outDir)-1]!=U_FILE_SEP_CHAR){
                    uprv_strcat(fn,U_FILE_SEP_STRING);
                }
            }
            uprv_strcat(fn,fileName);
            type = "new ICUListResourceBundle.ResourceBinary(";
            write_tabs(out);
            T_FileStream_write(out, type, (int32_t)uprv_strlen(type));
            T_FileStream_write(out, "\"", 1);
            T_FileStream_write(out, fileName, (int32_t)uprv_strlen(fileName));
            T_FileStream_write(out, "\"),\n", 4);

            datFile=T_FileStream_open(fn,"w");
            T_FileStream_write(datFile, res->u.fBinaryValue.fData, res->u.fBinaryValue.fLength);
            T_FileStream_close(datFile);

        }else{

            srcLen = res->u.fBinaryValue.fLength;
            tgtLen = srcLen * 2;
            target = (uint16_t*)malloc(sizeof(uint16_t) * tgtLen);
            saveTarget  = target;
            if(target){
                tgtLen = byteArrayToRLEString(res->u.fBinaryValue.fData,
                                              srcLen,target, tgtLen,status);
                if(U_FAILURE(*status)){
                     printf("Could not encode got error : %s \n", u_errorName(*status));
                     return;
                }
#if DEBUG
                /***************** Test Roundtripping *********************/
                {
                    int32_t myTargetLen = rleStringToByteArray(target,tgtLen,NULL,0,status);
                    uint8_t* myTarget = (uint8_t*) malloc(sizeof(uint8_t) * myTargetLen);

                    /* test for NULL */
                    if(myTarget == NULL) {
                        *status = U_MEMORY_ALLOCATION_ERROR;
                        return; 
                    }

                    int i=0;
                    int32_t retVal=0;

                    *status = U_ZERO_ERROR;
                    retVal=rleStringToByteArray(target,tgtLen,myTarget,myTargetLen,status);
                    if(U_SUCCESS(*status)){

                        for(i=0; i< srcLen;i++){
                            if(res->u.fBinaryValue.fData[i]!= myTarget[i]){
                                printf("the encoded string cannot be decoded Expected : 0x%02X Got : %: 0x%02X at %i\n",res->u.fBinaryValue.fData[i],myTarget[i], i);
                            }
                        }
                    }else{
                        printf("Could not decode got error : %s \n", u_errorName(*status));
                    }
                    free(myTarget);

                }
#endif

            }else{
                *status = U_MEMORY_ALLOCATION_ERROR;
                return;
            }

            write_tabs(out);
            T_FileStream_write(out, type, (int32_t)uprv_strlen(type));
            T_FileStream_write(out, "\n", 1);
            tabCount++;
            write_tabs(out);
            str_write_java(target, tgtLen,FALSE, status);
            tabCount--;
            T_FileStream_write(out, "),\n", 3);

            free(target);

        }
    
   }else{
        write_tabs(out);
        T_FileStream_write(out,type,uprv_strlen(type));
        T_FileStream_write(out,"null),\n",7);
   }

}