| Index: icu46/source/tools/genrb/wrtjava.c
|
| ===================================================================
|
| --- icu46/source/tools/genrb/wrtjava.c (revision 0)
|
| +++ icu46/source/tools/genrb/wrtjava.c (revision 0)
|
| @@ -0,0 +1,705 @@
|
| +/*
|
| +*******************************************************************************
|
| +*
|
| +* Copyright (C) 2000-2009, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +*
|
| +*******************************************************************************
|
| +*
|
| +* File wrtjava.c
|
| +*
|
| +* Modification History:
|
| +*
|
| +* Date Name Description
|
| +* 01/11/02 Ram Creation.
|
| +* 02/12/08 Spieth Fix errant 'new Object[][]{' insertion
|
| +* 02/19/08 Spieth Removed ICUListResourceBundle dependancy
|
| +*******************************************************************************
|
| +*/
|
| +
|
| +#include <assert.h>
|
| +#include "reslist.h"
|
| +#include "unewdata.h"
|
| +#include "unicode/ures.h"
|
| +#include "errmsg.h"
|
| +#include "filestrm.h"
|
| +#include "cstring.h"
|
| +#include "unicode/ucnv.h"
|
| +#include "genrb.h"
|
| +#include "rle.h"
|
| +#include "ucol_tok.h"
|
| +#include "uhash.h"
|
| +#include "uresimp.h"
|
| +#include "unicode/ustring.h"
|
| +
|
| +void res_write_java(struct SResource *res,UErrorCode *status);
|
| +
|
| +
|
| +static const char copyRight[] =
|
| + "/* \n"
|
| + " *******************************************************************************\n"
|
| + " *\n"
|
| + " * Copyright (C) International Business Machines\n"
|
| + " * Corporation and others. All Rights Reserved.\n"
|
| + " *\n"
|
| + " *******************************************************************************\n"
|
| + " * $" "Source: $ \n"
|
| + " * $" "Date: $ \n"
|
| + " * $" "Revision: $ \n"
|
| + " *******************************************************************************\n"
|
| + " */\n\n";
|
| +static const char warningMsg[] =
|
| + "/*********************************************************************\n"
|
| + "######################################################################\n"
|
| + "\n"
|
| + " WARNING: This file is generated by genrb Version " GENRB_VERSION ".\n"
|
| + " If you edit this file, please make sure that, the source\n"
|
| + " of this file (XXXX.txt in LocaleElements_XXXX.java)\n"
|
| + " is also edited.\n"
|
| + "######################################################################\n"
|
| + " *********************************************************************\n"
|
| + " */\n\n";
|
| +static const char* openBrace="{\n";
|
| +static const char* closeClass=" };\n"
|
| + "}\n";
|
| +
|
| +static const char* javaClass = "import java.util.ListResourceBundle;\n\n"
|
| + "public class ";
|
| +
|
| +static const char* javaClass1= " extends ListResourceBundle {\n\n"
|
| + " /**\n"
|
| + " * Overrides ListResourceBundle \n"
|
| + " */\n"
|
| + " public final Object[][] getContents() { \n"
|
| + " return contents;\n"
|
| + " }\n\n"
|
| + " private static Object[][] contents = {\n";
|
| +/*static const char* javaClassICU= " extends ListResourceBundle {\n\n"
|
| + " public %s () {\n"
|
| + " super.contents = data;\n"
|
| + " }\n"
|
| + " static final Object[][] data = new Object[][] { \n";*/
|
| +static int tabCount = 3;
|
| +
|
| +static FileStream* out=NULL;
|
| +static struct SRBRoot* srBundle ;
|
| +static const char* outDir = NULL;
|
| +
|
| +static const char* bName=NULL;
|
| +static const char* pName=NULL;
|
| +
|
| +static void write_tabs(FileStream* os){
|
| + int i=0;
|
| + for(;i<=tabCount;i++){
|
| + T_FileStream_write(os," ",4);
|
| + }
|
| +}
|
| +
|
| +#define ZERO 0x30
|
| +
|
| +static const char* enc ="";
|
| +static UConverter* conv = NULL;
|
| +
|
| +static int32_t
|
| +uCharsToChars( char* target,int32_t targetLen, UChar* source, int32_t sourceLen,UErrorCode* status){
|
| + int i=0, j=0;
|
| + char str[30]={'\0'};
|
| + while(i<sourceLen){
|
| + if (source[i] == '\n') {
|
| + if (j + 2 < targetLen) {
|
| + uprv_strcat(target, "\\n");
|
| + }
|
| + j += 2;
|
| + }else if(source[i]==0x0D){
|
| + if(j+2<targetLen){
|
| + uprv_strcat(target,"\\f");
|
| + }
|
| + j+=2;
|
| + }else if(source[i] == '"'){
|
| + if(source[i-1]=='\''){
|
| + if(j+2<targetLen){
|
| + uprv_strcat(target,"\\");
|
| + target[j+1]= (char)source[i];
|
| + }
|
| + j+=2;
|
| + }else if(source[i-1]!='\\'){
|
| +
|
| + if(j+2<targetLen){
|
| + uprv_strcat(target,"\\");
|
| + target[j+1]= (char)source[i];
|
| + }
|
| + j+=2;
|
| + }else if(source[i-1]=='\\'){
|
| + target[j++]= (char)source[i];
|
| + }
|
| + }else if(source[i]=='\\'){
|
| + if(i+1<sourceLen){
|
| + switch(source[i+1]){
|
| + case ',':
|
| + case '!':
|
| + case '?':
|
| + case '#':
|
| + case '.':
|
| + case '%':
|
| + case '&':
|
| + case ':':
|
| + case ';':
|
| + if(j+2<targetLen){
|
| + uprv_strcat(target,"\\\\");
|
| + }
|
| + j+=2;
|
| + break;
|
| + case '"':
|
| + case '\'':
|
| + if(j+3<targetLen){
|
| + uprv_strcat(target,"\\\\\\");
|
| + }
|
| + j+=3;
|
| + break;
|
| + default :
|
| + if(j<targetLen){
|
| + target[j]=(char)source[i];
|
| + }
|
| + j++;
|
| + break;
|
| + }
|
| + }else{
|
| + if(j<targetLen){
|
| + uprv_strcat(target,"\\\\");
|
| + }
|
| + j+=2;
|
| + }
|
| + }else if(source[i]>=0x20 && source[i]<0x7F/*ASCII*/){
|
| + if(j<targetLen){
|
| + target[j] = (char) source[i];
|
| + }
|
| + j++;
|
| + }else{
|
| + if(*enc =='\0' || source[i]==0x0000){
|
| + uprv_strcpy(str,"\\u");
|
| + itostr(str+2,source[i],16,4);
|
| + if(j+6<targetLen){
|
| + uprv_strcat(target,str);
|
| + }
|
| + j+=6;
|
| + }else{
|
| + char dest[30] = {0};
|
| + int retVal=ucnv_fromUChars(conv,dest,30,source+i,1,status);
|
| + if(U_FAILURE(*status)){
|
| + return 0;
|
| + }
|
| + if(j+retVal<targetLen){
|
| + uprv_strcat(target,dest);
|
| + }
|
| + j+=retVal;
|
| + }
|
| + }
|
| + i++;
|
| + }
|
| + return j;
|
| +}
|
| +
|
| +
|
| +static uint32_t
|
| +strrch(const char* source,uint32_t sourceLen,char find){
|
| + const char* tSourceEnd =source + (sourceLen-1);
|
| + while(tSourceEnd>= source){
|
| + if(*tSourceEnd==find){
|
| + return (uint32_t)(tSourceEnd-source);
|
| + }
|
| + tSourceEnd--;
|
| + }
|
| + return (uint32_t)(tSourceEnd-source);
|
| +}
|
| +
|
| +static int32_t getColumnCount(int32_t len){
|
| + int32_t columnCount = 80;
|
| + int32_t maxLines = 3000;
|
| + int32_t adjustedLen = len*5; /* assume that every codepoint is represented in \uXXXX format*/
|
| + /*
|
| + * calculate the number of lines that
|
| + * may be required if column count is 80
|
| + */
|
| + if (maxLines < (adjustedLen / columnCount) ){
|
| + columnCount = adjustedLen / maxLines;
|
| + }
|
| + return columnCount;
|
| +}
|
| +static void
|
| +str_write_java( uint16_t* src, int32_t srcLen, UBool printEndLine, UErrorCode *status){
|
| +
|
| + uint32_t length = srcLen*8;
|
| + uint32_t bufLen = 0;
|
| + uint32_t columnCount;
|
| + char* buf = (char*) malloc(sizeof(char)*length);
|
| +
|
| + if(buf == NULL) {
|
| + *status = U_MEMORY_ALLOCATION_ERROR;
|
| + return;
|
| + }
|
| +
|
| + columnCount = getColumnCount(srcLen);
|
| + memset(buf,0,length);
|
| +
|
| + bufLen = uCharsToChars(buf,length,src,srcLen,status);
|
| +
|
| + if(printEndLine)
|
| + write_tabs(out);
|
| +
|
| + if(U_FAILURE(*status)){
|
| + uprv_free(buf);
|
| + return;
|
| + }
|
| +
|
| + if(bufLen+(tabCount*4) > columnCount ){
|
| + uint32_t len = 0;
|
| + char* current = buf;
|
| + uint32_t add;
|
| + while(len < bufLen){
|
| + add = columnCount-(tabCount*4)-5/* for ", +\n */;
|
| + current = buf +len;
|
| + if (add < (bufLen-len)) {
|
| + uint32_t idx = strrch(current,add,'\\');
|
| + if (idx > add) {
|
| + idx = add;
|
| + } else {
|
| + int32_t num =idx-1;
|
| + uint32_t seqLen;
|
| + while(num>0){
|
| + if(current[num]=='\\'){
|
| + num--;
|
| + }else{
|
| + break;
|
| + }
|
| + }
|
| + if ((idx-num)%2==0) {
|
| + idx--;
|
| + }
|
| + seqLen = (current[idx+1]=='u') ? 6 : 2;
|
| + if ((add-idx) < seqLen) {
|
| + add = idx + seqLen;
|
| + }
|
| + }
|
| + }
|
| + T_FileStream_write(out,"\"",1);
|
| + if(len+add<bufLen){
|
| + T_FileStream_write(out,current,add);
|
| + T_FileStream_write(out,"\" +\n",4);
|
| + write_tabs(out);
|
| + }else{
|
| + T_FileStream_write(out,current,bufLen-len);
|
| + }
|
| + len+=add;
|
| + }
|
| + }else{
|
| + T_FileStream_write(out,"\"",1);
|
| + T_FileStream_write(out, buf,bufLen);
|
| + }
|
| + if(printEndLine){
|
| + T_FileStream_write(out,"\",\n",3);
|
| + }else{
|
| + T_FileStream_write(out,"\"",1);
|
| + }
|
| + uprv_free(buf);
|
| +}
|
| +
|
| +/* 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);
|
| + }
|
| +
|
| +}
|
| +
|
| +static void
|
| +array_write_java( struct SResource *res, UErrorCode *status) {
|
| +
|
| + uint32_t i = 0;
|
| + const char* arr ="new String[] { \n";
|
| + struct SResource *current = NULL;
|
| + struct SResource *first =NULL;
|
| + UBool decrementTabs = FALSE;
|
| + UBool allStrings = TRUE;
|
| +
|
| + if (U_FAILURE(*status)) {
|
| + return;
|
| + }
|
| +
|
| + if (res->u.fArray.fCount > 0) {
|
| +
|
| + current = res->u.fArray.fFirst;
|
| + i = 0;
|
| + while(current != NULL){
|
| + if(current->fType!=URES_STRING){
|
| + allStrings = FALSE;
|
| + break;
|
| + }
|
| + current= current->fNext;
|
| + }
|
| +
|
| + current = res->u.fArray.fFirst;
|
| + if(allStrings==FALSE){
|
| + const char* object = "new Object[]{\n";
|
| + write_tabs(out);
|
| + T_FileStream_write(out, object, (int32_t)uprv_strlen(object));
|
| + tabCount++;
|
| + decrementTabs = TRUE;
|
| + }else{
|
| + write_tabs(out);
|
| + T_FileStream_write(out, arr, (int32_t)uprv_strlen(arr));
|
| + tabCount++;
|
| + }
|
| + first=current;
|
| + while (current != NULL) {
|
| + /*if(current->fType==URES_STRING){
|
| + write_tabs(out);
|
| + }*/
|
| + res_write_java(current, status);
|
| + if(U_FAILURE(*status)){
|
| + return;
|
| + }
|
| + i++;
|
| + current = current->fNext;
|
| + }
|
| + T_FileStream_write(out,"\n",1);
|
| +
|
| + tabCount--;
|
| + write_tabs(out);
|
| + T_FileStream_write(out,"},\n",3);
|
| +
|
| + } else {
|
| + write_tabs(out);
|
| + T_FileStream_write(out,arr,(int32_t)uprv_strlen(arr));
|
| + write_tabs(out);
|
| + T_FileStream_write(out,"},\n",3);
|
| + }
|
| +}
|
| +
|
| +static void
|
| +intvector_write_java( struct SResource *res, UErrorCode *status) {
|
| + uint32_t i = 0;
|
| + const char* intArr = "new int[] {\n";
|
| + /* const char* intC = "new Integer("; */
|
| + const char* stringArr = "new String[]{\n";
|
| + char resKeyBuffer[8];
|
| + const char *resname = res_getKeyString(srBundle, res, resKeyBuffer);
|
| + char buf[100];
|
| + int len =0;
|
| + buf[0]=0;
|
| + write_tabs(out);
|
| +
|
| + if(resname != NULL && uprv_strcmp(resname,"DateTimeElements")==0){
|
| + T_FileStream_write(out, stringArr, (int32_t)uprv_strlen(stringArr));
|
| + tabCount++;
|
| + for(i = 0; i<res->u.fIntVector.fCount; i++) {
|
| + write_tabs(out);
|
| + len=itostr(buf,res->u.fIntVector.fArray[i],10,0);
|
| + T_FileStream_write(out,"\"",1);
|
| + T_FileStream_write(out,buf,len);
|
| + T_FileStream_write(out,"\",",2);
|
| + T_FileStream_write(out,"\n",1);
|
| + }
|
| + }else{
|
| + T_FileStream_write(out, intArr, (int32_t)uprv_strlen(intArr));
|
| + tabCount++;
|
| + for(i = 0; i<res->u.fIntVector.fCount; i++) {
|
| + write_tabs(out);
|
| + /* T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC)); */
|
| + len=itostr(buf,res->u.fIntVector.fArray[i],10,0);
|
| + T_FileStream_write(out,buf,len);
|
| + /* T_FileStream_write(out,"),",2); */
|
| + /* T_FileStream_write(out,"\n",1); */
|
| + T_FileStream_write(out,",\n",2);
|
| + }
|
| + }
|
| + tabCount--;
|
| + write_tabs(out);
|
| + T_FileStream_write(out,"},\n",3);
|
| +}
|
| +
|
| +static void
|
| +int_write_java(struct SResource *res,UErrorCode *status) {
|
| + const char* intC = "new Integer(";
|
| + char buf[100];
|
| + int len =0;
|
| + buf[0]=0;
|
| +
|
| + /* write the binary data */
|
| + write_tabs(out);
|
| + T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC));
|
| + len=itostr(buf, res->u.fIntValue.fValue, 10, 0);
|
| + T_FileStream_write(out,buf,len);
|
| + T_FileStream_write(out,"),\n",3 );
|
| +
|
| +}
|
| +
|
| +static void
|
| +bytes_write_java( struct SResource *res, UErrorCode *status) {
|
| + const char* type = "new byte[] {";
|
| + const char* byteDecl = "%i, ";
|
| + char byteBuffer[100] = { 0 };
|
| + uint8_t* byteArray = NULL;
|
| + int byteIterator = 0;
|
| +
|
| + int32_t srcLen=res->u.fBinaryValue.fLength;
|
| +
|
| + if(srcLen>0 )
|
| + {
|
| + byteArray = res->u.fBinaryValue.fData;
|
| +
|
| + write_tabs(out);
|
| + T_FileStream_write(out, type, (int32_t)uprv_strlen(type));
|
| + T_FileStream_write(out, "\n", 1);
|
| + tabCount++;
|
| +
|
| + for (;byteIterator<srcLen;byteIterator++)
|
| + {
|
| + if (byteIterator%16 == 0)
|
| + {
|
| + write_tabs(out);
|
| + }
|
| +
|
| + if (byteArray[byteIterator] < 128)
|
| + {
|
| + sprintf(byteBuffer, byteDecl, byteArray[byteIterator]);
|
| + }
|
| + else
|
| + {
|
| + sprintf(byteBuffer, byteDecl, (byteArray[byteIterator]-256));
|
| + }
|
| +
|
| + T_FileStream_write(out, byteBuffer, (int32_t)uprv_strlen(byteBuffer));
|
| +
|
| + if (byteIterator%16 == 15)
|
| + {
|
| + T_FileStream_write(out, "\n", 1);
|
| + }
|
| +
|
| + }
|
| +
|
| + if (((byteIterator-1)%16) != 15)
|
| + {
|
| + T_FileStream_write(out, "\n", 1);
|
| + }
|
| +
|
| + tabCount--;
|
| + write_tabs(out);
|
| + T_FileStream_write(out, "},\n", 3);
|
| +
|
| + }
|
| + else
|
| + {
|
| + /* Empty array */
|
| + write_tabs(out);
|
| + T_FileStream_write(out,type,(int32_t)uprv_strlen(type));
|
| + T_FileStream_write(out,"},\n",3);
|
| + }
|
| +
|
| +}
|
| +
|
| +static UBool start = TRUE;
|
| +
|
| +static void
|
| +table_write_java(struct SResource *res, UErrorCode *status) {
|
| + uint32_t i = 0;
|
| + UBool allStrings =TRUE;
|
| + struct SResource *current = NULL;
|
| + struct SResource *save = NULL;
|
| + const char* obj = "new Object[][]{\n";
|
| +
|
| + if (U_FAILURE(*status)) {
|
| + return ;
|
| + }
|
| +
|
| + if (res->u.fTable.fCount > 0) {
|
| + if(start==FALSE){
|
| + write_tabs(out);
|
| + T_FileStream_write(out, obj, (int32_t)uprv_strlen(obj));
|
| + tabCount++;
|
| + }
|
| + start = FALSE;
|
| + save = current = res->u.fTable.fFirst;
|
| + i = 0;
|
| +
|
| +
|
| + while (current != NULL) {
|
| + char currentKeyBuffer[8];
|
| + const char *currentKeyString = res_getKeyString(srBundle, current, currentKeyBuffer);
|
| +
|
| + assert(i < res->u.fTable.fCount);
|
| + write_tabs(out);
|
| +
|
| + T_FileStream_write(out, openBrace, 2);
|
| +
|
| +
|
| + tabCount++;
|
| + allStrings=FALSE;
|
| +
|
| + write_tabs(out);
|
| + if(currentKeyString != NULL) {
|
| + T_FileStream_write(out, "\"", 1);
|
| + T_FileStream_write(out, currentKeyString,
|
| + (int32_t)uprv_strlen(currentKeyString));
|
| + T_FileStream_write(out, "\",\n", 2);
|
| +
|
| + T_FileStream_write(out, "\n", 1);
|
| + }
|
| + res_write_java(current, status);
|
| + if(U_FAILURE(*status)){
|
| + return;
|
| + }
|
| + i++;
|
| + current = current->fNext;
|
| + tabCount--;
|
| + write_tabs(out);
|
| + T_FileStream_write(out, "},\n", 3);
|
| + }
|
| + if(tabCount>4){
|
| + tabCount--;
|
| + write_tabs(out);
|
| + T_FileStream_write(out, "},\n", 3);
|
| + }
|
| +
|
| + } else {
|
| + write_tabs(out);
|
| + T_FileStream_write(out,obj,(int32_t)uprv_strlen(obj));
|
| +
|
| + write_tabs(out);
|
| + T_FileStream_write(out,"},\n",3);
|
| +
|
| + }
|
| +
|
| +}
|
| +
|
| +void
|
| +res_write_java(struct SResource *res,UErrorCode *status) {
|
| +
|
| + if (U_FAILURE(*status)) {
|
| + return ;
|
| + }
|
| +
|
| + if (res != NULL) {
|
| + switch (res->fType) {
|
| + case URES_STRING:
|
| + string_write_java (res, status);
|
| + return;
|
| + case URES_ALIAS:
|
| + printf("Encountered unsupported resource type %d of alias\n", res->fType);
|
| + *status = U_UNSUPPORTED_ERROR;
|
| + return;
|
| + case URES_INT_VECTOR:
|
| + intvector_write_java (res, status);
|
| + return;
|
| + case URES_BINARY:
|
| + bytes_write_java (res, status);
|
| + return;
|
| + case URES_INT:
|
| + int_write_java (res, status);
|
| + return;
|
| + case URES_ARRAY:
|
| + array_write_java (res, status);
|
| + return;
|
| + case URES_TABLE:
|
| + table_write_java (res, status);
|
| + return;
|
| + default:
|
| + break;
|
| + }
|
| + }
|
| +
|
| + *status = U_INTERNAL_PROGRAM_ERROR;
|
| +}
|
| +
|
| +void
|
| +bundle_write_java(struct SRBRoot *bundle, const char *outputDir,const char* outputEnc,
|
| + char *writtenFilename, int writtenFilenameLen,
|
| + const char* packageName, const char* bundleName,
|
| + UErrorCode *status) {
|
| +
|
| + char fileName[256] = {'\0'};
|
| + char className[256]={'\0'};
|
| + /*char constructor[1000] = { 0 };*/
|
| + /*UBool j1 =FALSE;*/
|
| + outDir = outputDir;
|
| +
|
| + start = TRUE; /* Reset the start indictor*/
|
| +
|
| + bName = (bundleName==NULL) ? "LocaleElements" : bundleName;
|
| + pName = (packageName==NULL)? "com.ibm.icu.impl.data" : packageName;
|
| +
|
| + uprv_strcpy(className, bName);
|
| + srBundle = bundle;
|
| + if(uprv_strcmp(srBundle->fLocale,"root")!=0){
|
| + uprv_strcat(className,"_");
|
| + uprv_strcat(className,srBundle->fLocale);
|
| + }
|
| + if(outputDir){
|
| + uprv_strcpy(fileName, outputDir);
|
| + if(outputDir[uprv_strlen(outputDir)-1] !=U_FILE_SEP_CHAR){
|
| + uprv_strcat(fileName,U_FILE_SEP_STRING);
|
| + }
|
| + uprv_strcat(fileName,className);
|
| + uprv_strcat(fileName,".java");
|
| + }else{
|
| + uprv_strcat(fileName,className);
|
| + uprv_strcat(fileName,".java");
|
| + }
|
| +
|
| + if (writtenFilename) {
|
| + uprv_strncpy(writtenFilename, fileName, writtenFilenameLen);
|
| + }
|
| +
|
| + if (U_FAILURE(*status)) {
|
| + return;
|
| + }
|
| +
|
| + out= T_FileStream_open(fileName,"w");
|
| +
|
| + if(out==NULL){
|
| + *status = U_FILE_ACCESS_ERROR;
|
| + return;
|
| + }
|
| + if(getIncludeCopyright()){
|
| + T_FileStream_write(out, copyRight, (int32_t)uprv_strlen(copyRight));
|
| + T_FileStream_write(out, warningMsg, (int32_t)uprv_strlen(warningMsg));
|
| + }
|
| + T_FileStream_write(out,"package ",(int32_t)uprv_strlen("package "));
|
| + T_FileStream_write(out,pName,(int32_t)uprv_strlen(pName));
|
| + T_FileStream_write(out,";\n\n",3);
|
| + T_FileStream_write(out, javaClass, (int32_t)uprv_strlen(javaClass));
|
| + T_FileStream_write(out, className, (int32_t)uprv_strlen(className));
|
| + T_FileStream_write(out, javaClass1, (int32_t)uprv_strlen(javaClass1));
|
| +
|
| + /* if(j1){
|
| + T_FileStream_write(out, javaClass1, (int32_t)uprv_strlen(javaClass1));
|
| + }else{
|
| + sprintf(constructor,javaClassICU,className);
|
| + T_FileStream_write(out, constructor, (int32_t)uprv_strlen(constructor));
|
| + }
|
| + */
|
| +
|
| + if(outputEnc && *outputEnc!='\0'){
|
| + /* store the output encoding */
|
| + enc = outputEnc;
|
| + conv=ucnv_open(enc,status);
|
| + if(U_FAILURE(*status)){
|
| + return;
|
| + }
|
| + }
|
| + res_write_java(bundle->fRoot, status);
|
| +
|
| + T_FileStream_write(out, closeClass, (int32_t)uprv_strlen(closeClass));
|
| +
|
| + T_FileStream_close(out);
|
| +
|
| + ucnv_close(conv);
|
| +}
|
|
|
| Property changes on: icu46/source/tools/genrb/wrtjava.c
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|