Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: source/tools/genrb/wrtjava.cpp

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/tools/genrb/wrtjava.c ('k') | source/tools/genrb/wrtxml.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************* 2 *******************************************************************************
3 * 3 *
4 * Copyright (C) 2000-2012, International Business Machines 4 * Copyright (C) 2000-2015, International Business Machines
5 * Corporation and others. All Rights Reserved. 5 * Corporation and others. All Rights Reserved.
6 * 6 *
7 ******************************************************************************* 7 *******************************************************************************
8 * 8 *
9 * File wrtjava.c 9 * File wrtjava.cpp
10 * 10 *
11 * Modification History: 11 * Modification History:
12 * 12 *
13 * Date Name Description 13 * Date Name Description
14 * 01/11/02 Ram Creation. 14 * 01/11/02 Ram Creation.
15 * 02/12/08 Spieth Fix errant 'new Object[][]{' insertion 15 * 02/12/08 Spieth Fix errant 'new Object[][]{' insertion
16 * 02/19/08 Spieth Removed ICUListResourceBundle dependancy 16 * 02/19/08 Spieth Removed ICUListResourceBundle dependancy
17 ******************************************************************************* 17 *******************************************************************************
18 */ 18 */
19 19
20 #include <assert.h> 20 #include <assert.h>
21 #include "unicode/unistr.h"
21 #include "reslist.h" 22 #include "reslist.h"
22 #include "unewdata.h" 23 #include "unewdata.h"
23 #include "unicode/ures.h" 24 #include "unicode/ures.h"
24 #include "errmsg.h" 25 #include "errmsg.h"
25 #include "filestrm.h" 26 #include "filestrm.h"
26 #include "cstring.h" 27 #include "cstring.h"
27 #include "unicode/ucnv.h" 28 #include "unicode/ucnv.h"
28 #include "genrb.h" 29 #include "genrb.h"
29 #include "rle.h" 30 #include "rle.h"
30 #include "uhash.h" 31 #include "uhash.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 T_FileStream_write(os," ",4); 94 T_FileStream_write(os," ",4);
94 } 95 }
95 } 96 }
96 97
97 #define ZERO 0x30 98 #define ZERO 0x30
98 99
99 static const char* enc =""; 100 static const char* enc ="";
100 static UConverter* conv = NULL; 101 static UConverter* conv = NULL;
101 102
102 static int32_t 103 static int32_t
103 uCharsToChars( char* target,int32_t targetLen, UChar* source, int32_t sourceLen, UErrorCode* status){ 104 uCharsToChars(char *target, int32_t targetLen, const UChar *source, int32_t sour ceLen, UErrorCode *status) {
104 int i=0, j=0; 105 int i=0, j=0;
105 char str[30]={'\0'}; 106 char str[30]={'\0'};
106 while(i<sourceLen){ 107 while(i<sourceLen){
107 if (source[i] == '\n') { 108 if (source[i] == '\n') {
108 if (j + 2 < targetLen) { 109 if (j + 2 < targetLen) {
109 uprv_strcat(target, "\\n"); 110 uprv_strcat(target, "\\n");
110 } 111 }
111 j += 2; 112 j += 2;
112 }else if(source[i]==0x0D){ 113 }else if(source[i]==0x0D){
113 if(j+2<targetLen){ 114 if(j+2<targetLen){
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 /* 219 /*
219 * calculate the number of lines that 220 * calculate the number of lines that
220 * may be required if column count is 80 221 * may be required if column count is 80
221 */ 222 */
222 if (maxLines < (adjustedLen / columnCount) ){ 223 if (maxLines < (adjustedLen / columnCount) ){
223 columnCount = adjustedLen / maxLines; 224 columnCount = adjustedLen / maxLines;
224 } 225 }
225 return columnCount; 226 return columnCount;
226 } 227 }
227 static void 228 static void
228 str_write_java( uint16_t* src, int32_t srcLen, UBool printEndLine, UErrorCode *s tatus){ 229 str_write_java(const UChar *src, int32_t srcLen, UBool printEndLine, UErrorCode *status) {
229 230
230 uint32_t length = srcLen*8; 231 uint32_t length = srcLen*8;
231 uint32_t bufLen = 0; 232 uint32_t bufLen = 0;
232 uint32_t columnCount; 233 uint32_t columnCount;
233 char* buf = (char*) malloc(sizeof(char)*length); 234 char* buf = (char*) malloc(sizeof(char)*length);
234 235
235 if(buf == NULL) { 236 if(buf == NULL) {
236 *status = U_MEMORY_ALLOCATION_ERROR; 237 *status = U_MEMORY_ALLOCATION_ERROR;
237 return; 238 return;
238 } 239 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 if(printEndLine){ 298 if(printEndLine){
298 T_FileStream_write(out,"\",\n",3); 299 T_FileStream_write(out,"\",\n",3);
299 }else{ 300 }else{
300 T_FileStream_write(out,"\"",1); 301 T_FileStream_write(out,"\"",1);
301 } 302 }
302 uprv_free(buf); 303 uprv_free(buf);
303 } 304 }
304 305
305 /* Writing Functions */ 306 /* Writing Functions */
306 static void 307 static void
307 string_write_java(struct SResource *res,UErrorCode *status) { 308 string_write_java(const StringResource *res,UErrorCode *status) {
308 char resKeyBuffer[8]; 309 (void)res->getKeyString(srBundle);
309 const char *resname = res_getKeyString(srBundle, res, resKeyBuffer);
310 310
311 str_write_java(res->u.fString.fChars,res->u.fString.fLength,TRUE,status); 311 str_write_java(res->getBuffer(), res->length(), TRUE, status);
312
313 » if(resname != NULL && uprv_strcmp(resname,"Rule")==0)
314 » {
315 UChar* buf = (UChar*) uprv_malloc(sizeof(UChar)*res->u.fString.fLength);
316 uprv_memcpy(buf,res->u.fString.fChars,res->u.fString.fLength);
317 uprv_free(buf);
318 }
319
320 } 312 }
321 313
322 static void 314 static void
323 array_write_java( struct SResource *res, UErrorCode *status) { 315 array_write_java(const ArrayResource *res, UErrorCode *status) {
324 316
325 uint32_t i = 0; 317 uint32_t i = 0;
326 const char* arr ="new String[] { \n"; 318 const char* arr ="new String[] { \n";
327 struct SResource *current = NULL; 319 struct SResource *current = NULL;
328 UBool allStrings = TRUE; 320 UBool allStrings = TRUE;
329 321
330 if (U_FAILURE(*status)) { 322 if (U_FAILURE(*status)) {
331 return; 323 return;
332 } 324 }
333 325
334 if (res->u.fArray.fCount > 0) { 326 if (res->fCount > 0) {
335 327
336 current = res->u.fArray.fFirst; 328 current = res->fFirst;
337 i = 0; 329 i = 0;
338 while(current != NULL){ 330 while(current != NULL){
339 if(current->fType!=URES_STRING){ 331 if(!current->isString()){
340 allStrings = FALSE; 332 allStrings = FALSE;
341 break; 333 break;
342 } 334 }
343 current= current->fNext; 335 current= current->fNext;
344 } 336 }
345 337
346 current = res->u.fArray.fFirst; 338 current = res->fFirst;
347 if(allStrings==FALSE){ 339 if(allStrings==FALSE){
348 const char* object = "new Object[]{\n"; 340 const char* object = "new Object[]{\n";
349 write_tabs(out); 341 write_tabs(out);
350 T_FileStream_write(out, object, (int32_t)uprv_strlen(object)); 342 T_FileStream_write(out, object, (int32_t)uprv_strlen(object));
351 tabCount++; 343 tabCount++;
352 }else{ 344 }else{
353 write_tabs(out); 345 write_tabs(out);
354 T_FileStream_write(out, arr, (int32_t)uprv_strlen(arr)); 346 T_FileStream_write(out, arr, (int32_t)uprv_strlen(arr));
355 tabCount++; 347 tabCount++;
356 } 348 }
357 while (current != NULL) { 349 while (current != NULL) {
358 /*if(current->fType==URES_STRING){ 350 /*if(current->isString()){
359 write_tabs(out); 351 write_tabs(out);
360 }*/ 352 }*/
361 res_write_java(current, status); 353 res_write_java(current, status);
362 if(U_FAILURE(*status)){ 354 if(U_FAILURE(*status)){
363 return; 355 return;
364 } 356 }
365 i++; 357 i++;
366 current = current->fNext; 358 current = current->fNext;
367 } 359 }
368 T_FileStream_write(out,"\n",1); 360 T_FileStream_write(out,"\n",1);
369 361
370 tabCount--; 362 tabCount--;
371 write_tabs(out); 363 write_tabs(out);
372 T_FileStream_write(out,"},\n",3); 364 T_FileStream_write(out,"},\n",3);
373 365
374 } else { 366 } else {
375 write_tabs(out); 367 write_tabs(out);
376 T_FileStream_write(out,arr,(int32_t)uprv_strlen(arr)); 368 T_FileStream_write(out,arr,(int32_t)uprv_strlen(arr));
377 write_tabs(out); 369 write_tabs(out);
378 T_FileStream_write(out,"},\n",3); 370 T_FileStream_write(out,"},\n",3);
379 } 371 }
380 } 372 }
381 373
382 static void 374 static void
383 intvector_write_java( struct SResource *res, UErrorCode *status) { 375 intvector_write_java(const IntVectorResource *res, UErrorCode * /*status*/) {
384 uint32_t i = 0; 376 uint32_t i = 0;
385 const char* intArr = "new int[] {\n"; 377 const char* intArr = "new int[] {\n";
386 /* const char* intC = "new Integer("; */ 378 /* const char* intC = "new Integer("; */
387 const char* stringArr = "new String[]{\n"; 379 const char* stringArr = "new String[]{\n";
388 char resKeyBuffer[8]; 380 const char *resname = res->getKeyString(srBundle);
389 const char *resname = res_getKeyString(srBundle, res, resKeyBuffer);
390 char buf[100]; 381 char buf[100];
391 int len =0; 382 int len =0;
392 buf[0]=0; 383 buf[0]=0;
393 write_tabs(out); 384 write_tabs(out);
394 385
395 if(resname != NULL && uprv_strcmp(resname,"DateTimeElements")==0){ 386 if(resname != NULL && uprv_strcmp(resname,"DateTimeElements")==0){
396 T_FileStream_write(out, stringArr, (int32_t)uprv_strlen(stringArr)); 387 T_FileStream_write(out, stringArr, (int32_t)uprv_strlen(stringArr));
397 tabCount++; 388 tabCount++;
398 for(i = 0; i<res->u.fIntVector.fCount; i++) { 389 for(i = 0; i<res->fCount; i++) {
399 write_tabs(out); 390 write_tabs(out);
400 len=itostr(buf,res->u.fIntVector.fArray[i],10,0); 391 len=itostr(buf,res->fArray[i],10,0);
401 T_FileStream_write(out,"\"",1); 392 T_FileStream_write(out,"\"",1);
402 T_FileStream_write(out,buf,len); 393 T_FileStream_write(out,buf,len);
403 T_FileStream_write(out,"\",",2); 394 T_FileStream_write(out,"\",",2);
404 T_FileStream_write(out,"\n",1); 395 T_FileStream_write(out,"\n",1);
405 } 396 }
406 }else{ 397 }else{
407 T_FileStream_write(out, intArr, (int32_t)uprv_strlen(intArr)); 398 T_FileStream_write(out, intArr, (int32_t)uprv_strlen(intArr));
408 tabCount++; 399 tabCount++;
409 for(i = 0; i<res->u.fIntVector.fCount; i++) { 400 for(i = 0; i<res->fCount; i++) {
410 write_tabs(out); 401 write_tabs(out);
411 /* T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC)); */ 402 /* T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC)); */
412 len=itostr(buf,res->u.fIntVector.fArray[i],10,0); 403 len=itostr(buf,res->fArray[i],10,0);
413 T_FileStream_write(out,buf,len); 404 T_FileStream_write(out,buf,len);
414 /* T_FileStream_write(out,"),",2); */ 405 /* T_FileStream_write(out,"),",2); */
415 /* T_FileStream_write(out,"\n",1); */ 406 /* T_FileStream_write(out,"\n",1); */
416 T_FileStream_write(out,",\n",2); 407 T_FileStream_write(out,",\n",2);
417 } 408 }
418 } 409 }
419 tabCount--; 410 tabCount--;
420 write_tabs(out); 411 write_tabs(out);
421 T_FileStream_write(out,"},\n",3); 412 T_FileStream_write(out,"},\n",3);
422 } 413 }
423 414
424 static void 415 static void
425 int_write_java(struct SResource *res,UErrorCode *status) { 416 int_write_java(const IntResource *res, UErrorCode * /*status*/) {
426 const char* intC = "new Integer("; 417 const char* intC = "new Integer(";
427 char buf[100]; 418 char buf[100];
428 int len =0; 419 int len =0;
429 buf[0]=0; 420 buf[0]=0;
430 421
431 /* write the binary data */ 422 /* write the binary data */
432 write_tabs(out); 423 write_tabs(out);
433 T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC)); 424 T_FileStream_write(out, intC, (int32_t)uprv_strlen(intC));
434 len=itostr(buf, res->u.fIntValue.fValue, 10, 0); 425 len=itostr(buf, res->fValue, 10, 0);
435 T_FileStream_write(out,buf,len); 426 T_FileStream_write(out,buf,len);
436 T_FileStream_write(out,"),\n",3 ); 427 T_FileStream_write(out,"),\n",3 );
437 428
438 } 429 }
439 430
440 static void 431 static void
441 bytes_write_java( struct SResource *res, UErrorCode *status) { 432 bytes_write_java(const BinaryResource *res, UErrorCode * /*status*/) {
442 const char* type = "new byte[] {"; 433 const char* type = "new byte[] {";
443 const char* byteDecl = "%i, "; 434 const char* byteDecl = "%i, ";
444 char byteBuffer[100] = { 0 }; 435 char byteBuffer[100] = { 0 };
445 uint8_t* byteArray = NULL; 436 uint8_t* byteArray = NULL;
446 int byteIterator = 0; 437 int byteIterator = 0;
447 438
448 int32_t srcLen=res->u.fBinaryValue.fLength; 439 int32_t srcLen=res->fLength;
449 440
450 if(srcLen>0 ) 441 if(srcLen>0 )
451 { 442 {
452 byteArray = res->u.fBinaryValue.fData; 443 byteArray = res->fData;
453 444
454 write_tabs(out); 445 write_tabs(out);
455 T_FileStream_write(out, type, (int32_t)uprv_strlen(type)); 446 T_FileStream_write(out, type, (int32_t)uprv_strlen(type));
456 T_FileStream_write(out, "\n", 1); 447 T_FileStream_write(out, "\n", 1);
457 tabCount++; 448 tabCount++;
458 449
459 for (;byteIterator<srcLen;byteIterator++) 450 for (;byteIterator<srcLen;byteIterator++)
460 { 451 {
461 if (byteIterator%16 == 0) 452 if (byteIterator%16 == 0)
462 { 453 {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 write_tabs(out); 488 write_tabs(out);
498 T_FileStream_write(out,type,(int32_t)uprv_strlen(type)); 489 T_FileStream_write(out,type,(int32_t)uprv_strlen(type));
499 T_FileStream_write(out,"},\n",3); 490 T_FileStream_write(out,"},\n",3);
500 } 491 }
501 492
502 } 493 }
503 494
504 static UBool start = TRUE; 495 static UBool start = TRUE;
505 496
506 static void 497 static void
507 table_write_java(struct SResource *res, UErrorCode *status) { 498 table_write_java(const TableResource *res, UErrorCode *status) {
508 uint32_t i = 0; 499 uint32_t i = 0;
509 struct SResource *current = NULL; 500 struct SResource *current = NULL;
510 const char* obj = "new Object[][]{\n"; 501 const char* obj = "new Object[][]{\n";
511 502
512 if (U_FAILURE(*status)) { 503 if (U_FAILURE(*status)) {
513 return ; 504 return ;
514 } 505 }
515 506
516 if (res->u.fTable.fCount > 0) { 507 if (res->fCount > 0) {
517 if(start==FALSE){ 508 if(start==FALSE){
518 write_tabs(out); 509 write_tabs(out);
519 T_FileStream_write(out, obj, (int32_t)uprv_strlen(obj)); 510 T_FileStream_write(out, obj, (int32_t)uprv_strlen(obj));
520 tabCount++; 511 tabCount++;
521 } 512 }
522 start = FALSE; 513 start = FALSE;
523 current = res->u.fTable.fFirst; 514 current = res->fFirst;
524 i = 0; 515 i = 0;
525 516
526 517
527 while (current != NULL) { 518 while (current != NULL) {
528 char currentKeyBuffer[8]; 519 const char *currentKeyString = current->getKeyString(srBundle);
529 const char *currentKeyString = res_getKeyString(srBundle, current, c urrentKeyBuffer);
530 520
531 assert(i < res->u.fTable.fCount); 521 assert(i < res->fCount);
532 write_tabs(out); 522 write_tabs(out);
533 523
534 T_FileStream_write(out, openBrace, 2); 524 T_FileStream_write(out, openBrace, 2);
535 525
536 526
537 tabCount++; 527 tabCount++;
538 528
539 write_tabs(out); 529 write_tabs(out);
540 if(currentKeyString != NULL) { 530 if(currentKeyString != NULL) {
541 T_FileStream_write(out, "\"", 1); 531 T_FileStream_write(out, "\"", 1);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 void 565 void
576 res_write_java(struct SResource *res,UErrorCode *status) { 566 res_write_java(struct SResource *res,UErrorCode *status) {
577 567
578 if (U_FAILURE(*status)) { 568 if (U_FAILURE(*status)) {
579 return ; 569 return ;
580 } 570 }
581 571
582 if (res != NULL) { 572 if (res != NULL) {
583 switch (res->fType) { 573 switch (res->fType) {
584 case URES_STRING: 574 case URES_STRING:
585 string_write_java (res, status); 575 string_write_java (static_cast<const StringResource *>(res), sta tus);
586 return; 576 return;
587 case URES_ALIAS: 577 case URES_ALIAS:
588 printf("Encountered unsupported resource type %d of alias\n", res-> fType); 578 printf("Encountered unsupported resource type %d of alias\n", res-> fType);
589 *status = U_UNSUPPORTED_ERROR; 579 *status = U_UNSUPPORTED_ERROR;
590 return; 580 return;
591 case URES_INT_VECTOR: 581 case URES_INT_VECTOR:
592 intvector_write_java (res, status); 582 intvector_write_java (static_cast<const IntVectorResource *>(res), status);
593 return; 583 return;
594 case URES_BINARY: 584 case URES_BINARY:
595 bytes_write_java (res, status); 585 bytes_write_java (static_cast<const BinaryResource *>(res), sta tus);
596 return; 586 return;
597 case URES_INT: 587 case URES_INT:
598 int_write_java (res, status); 588 int_write_java (static_cast<const IntResource *>(res), status );
599 return; 589 return;
600 case URES_ARRAY: 590 case URES_ARRAY:
601 array_write_java (res, status); 591 array_write_java (static_cast<const ArrayResource *>(res), stat us);
602 return; 592 return;
603 case URES_TABLE: 593 case URES_TABLE:
604 table_write_java (res, status); 594 table_write_java (static_cast<const TableResource *>(res), stat us);
605 return; 595 return;
606 default: 596 default:
607 break; 597 break;
608 } 598 }
609 } 599 }
610 600
611 *status = U_INTERNAL_PROGRAM_ERROR; 601 *status = U_INTERNAL_PROGRAM_ERROR;
612 } 602 }
613 603
614 void 604 void
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 } 678 }
689 } 679 }
690 res_write_java(bundle->fRoot, status); 680 res_write_java(bundle->fRoot, status);
691 681
692 T_FileStream_write(out, closeClass, (int32_t)uprv_strlen(closeClass)); 682 T_FileStream_write(out, closeClass, (int32_t)uprv_strlen(closeClass));
693 683
694 T_FileStream_close(out); 684 T_FileStream_close(out);
695 685
696 ucnv_close(conv); 686 ucnv_close(conv);
697 } 687 }
OLDNEW
« no previous file with comments | « source/tools/genrb/wrtjava.c ('k') | source/tools/genrb/wrtxml.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698