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

Side by Side Diff: source/tools/genrb/wrtxml.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.cpp ('k') | source/tools/gensprep/filterRFC3454.pl » ('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) 2002-2014, International Business Machines 4 * Copyright (C) 2002-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 wrtxml.cpp 9 * File wrtxml.cpp
10 * 10 *
11 * Modification History: 11 * Modification History:
12 * 12 *
13 * Date Name Description 13 * Date Name Description
14 * 10/01/02 Ram Creation. 14 * 10/01/02 Ram Creation.
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 * 129 *
130 * @author Michael Lecuyer (mjl@theorem.com) 130 * @author Michael Lecuyer (mjl@theorem.com)
131 * @version 1.1 August 11, 1998 131 * @version 1.1 August 11, 1998
132 */ 132 */
133 133
134 /* ICU is not endian portable, because ICU data generated on big endian machines can be 134 /* ICU is not endian portable, because ICU data generated on big endian machines can be
135 * ported to big endian machines but not to little endian machines and vice vers a. The 135 * ported to big endian machines but not to little endian machines and vice vers a. The
136 * conversion is not portable across platforms with different endianess. 136 * conversion is not portable across platforms with different endianess.
137 */ 137 */
138 138
139 uint32_t computeCRC(char *ptr, uint32_t len, uint32_t lastcrc){ 139 uint32_t computeCRC(const char *ptr, uint32_t len, uint32_t lastcrc){
140 int32_t crc; 140 int32_t crc;
141 uint32_t temp1; 141 uint32_t temp1;
142 uint32_t temp2; 142 uint32_t temp2;
143 143
144 int32_t crc_ta[256]; 144 int32_t crc_ta[256];
145 int i = 0; 145 int i = 0;
146 int j = 0; 146 int j = 0;
147 uint32_t crc2 = 0; 147 uint32_t crc2 = 0;
148 148
149 #define CRC32_POLYNOMIAL 0xEDB88320 149 #define CRC32_POLYNOMIAL 0xEDB88320
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 if(U_SUCCESS(*status)){ 412 if(U_SUCCESS(*status)){
413 trim(&buf,&bufLen); 413 trim(&buf,&bufLen);
414 write_utf8_file(out,UnicodeString(tagStart)); 414 write_utf8_file(out,UnicodeString(tagStart));
415 write_utf8_file(out,UnicodeString(buf, bufLen, "UTF-8")); 415 write_utf8_file(out,UnicodeString(buf, bufLen, "UTF-8"));
416 write_utf8_file(out,UnicodeString(tagEnd)); 416 write_utf8_file(out,UnicodeString(tagEnd));
417 write_utf8_file(out,UnicodeString("\n")); 417 write_utf8_file(out,UnicodeString("\n"));
418 418
419 } 419 }
420 } 420 }
421 static void 421 static void
422 printNoteElements(struct UString *src, UErrorCode *status){ 422 printNoteElements(const UString *src, UErrorCode *status){
423 423
424 #if UCONFIG_NO_REGULAR_EXPRESSIONS==0 /* donot compile when no RegularExpression s are available */ 424 #if UCONFIG_NO_REGULAR_EXPRESSIONS==0 /* donot compile when no RegularExpression s are available */
425 425
426 int32_t capacity = 0; 426 int32_t capacity = 0;
427 UChar* note = NULL; 427 UChar* note = NULL;
428 int32_t noteLen = 0; 428 int32_t noteLen = 0;
429 int32_t count = 0,i; 429 int32_t count = 0,i;
430 430
431 if(src == NULL){ 431 if(src == NULL){
432 return; 432 return;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 UChar* desc = (UChar*) uprv_malloc(U_SIZEOF_UCHAR * capacity); 493 UChar* desc = (UChar*) uprv_malloc(U_SIZEOF_UCHAR * capacity);
494 UChar* trans = (UChar*) uprv_malloc(U_SIZEOF_UCHAR * capacity); 494 UChar* trans = (UChar*) uprv_malloc(U_SIZEOF_UCHAR * capacity);
495 495
496 int32_t descLen = 0, transLen=0; 496 int32_t descLen = 0, transLen=0;
497 if(desc==NULL || trans==NULL){ 497 if(desc==NULL || trans==NULL){
498 *status = U_MEMORY_ALLOCATION_ERROR; 498 *status = U_MEMORY_ALLOCATION_ERROR;
499 uprv_free(desc); 499 uprv_free(desc);
500 uprv_free(trans); 500 uprv_free(trans);
501 return; 501 return;
502 } 502 }
503 // TODO: make src const, stop modifying it in-place, make printContainer() t ake const resource, etc.
503 src->fLength = removeCmtText(src->fChars, src->fLength, status); 504 src->fLength = removeCmtText(src->fChars, src->fLength, status);
504 descLen = getDescription(src->fChars,src->fLength, &desc, capacity, status) ; 505 descLen = getDescription(src->fChars,src->fLength, &desc, capacity, status) ;
505 transLen = getTranslate(src->fChars,src->fLength, &trans, capacity, status); 506 transLen = getTranslate(src->fChars,src->fLength, &trans, capacity, status);
506 507
507 /* first print translate attribute */ 508 /* first print translate attribute */
508 if(transLen > 0){ 509 if(transLen > 0){
509 if(printTranslate){ 510 if(printTranslate){
510 /* print translate attribute */ 511 /* print translate attribute */
511 buf = convertAndEscape(&buf, 0, &bufLen, trans, transLen, status); 512 buf = convertAndEscape(&buf, 0, &bufLen, trans, transLen, status);
512 if(U_SUCCESS(*status)){ 513 if(U_SUCCESS(*status)){
(...skipping 23 matching lines...) Expand all
536 537
537 #endif /* UCONFIG_NO_REGULAR_EXPRESSIONS */ 538 #endif /* UCONFIG_NO_REGULAR_EXPRESSIONS */
538 539
539 } 540 }
540 541
541 /* 542 /*
542 * Print out a containing element, like: 543 * Print out a containing element, like:
543 * <trans-unit id = "blah" resname = "blah" restype = "x-id-alias" translate = " no"> 544 * <trans-unit id = "blah" resname = "blah" restype = "x-id-alias" translate = " no">
544 * <group id "calendar_gregorian" resname = "gregorian" restype = "x-icu-array"> 545 * <group id "calendar_gregorian" resname = "gregorian" restype = "x-icu-array">
545 */ 546 */
546 static char *printContainer(struct SResource *res, const char *container, const char *restype, const char *mimetype, const char *id, UErrorCode *status) 547 static char *printContainer(SResource *res, const char *container, const char *r estype, const char *mimetype, const char *id, UErrorCode *status)
547 { 548 {
548 char resKeyBuffer[8];
549 const char *resname = NULL; 549 const char *resname = NULL;
550 char *sid = NULL; 550 char *sid = NULL;
551 551
552 write_tabs(out); 552 write_tabs(out);
553 553
554 resname = res_getKeyString(srBundle, res, resKeyBuffer); 554 resname = res->getKeyString(srBundle);
555 if (resname != NULL && *resname != 0) { 555 if (resname != NULL && *resname != 0) {
556 sid = getID(id, resname, sid); 556 sid = getID(id, resname, sid);
557 } else { 557 } else {
558 sid = getID(id, NULL, sid); 558 sid = getID(id, NULL, sid);
559 } 559 }
560 560
561 write_utf8_file(out, UnicodeString("<")); 561 write_utf8_file(out, UnicodeString("<"));
562 write_utf8_file(out, UnicodeString(container)); 562 write_utf8_file(out, UnicodeString(container));
563 printAttribute("id", sid, (int32_t) uprv_strlen(sid)); 563 printAttribute("id", sid, (int32_t) uprv_strlen(sid));
564 564
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 static const char *application_mimetype = "application"; /* add "/octet-stream"? */ 606 static const char *application_mimetype = "application"; /* add "/octet-stream"? */
607 607
608 static const char *alias_restype = "x-icu-alias"; 608 static const char *alias_restype = "x-icu-alias";
609 static const char *array_restype = "x-icu-array"; 609 static const char *array_restype = "x-icu-array";
610 static const char *binary_restype = "x-icu-binary"; 610 static const char *binary_restype = "x-icu-binary";
611 static const char *integer_restype = "x-icu-integer"; 611 static const char *integer_restype = "x-icu-integer";
612 static const char *intvector_restype = "x-icu-intvector"; 612 static const char *intvector_restype = "x-icu-intvector";
613 static const char *table_restype = "x-icu-table"; 613 static const char *table_restype = "x-icu-table";
614 614
615 static void 615 static void
616 string_write_xml(struct SResource *res, const char* id, const char* /*language*/ , UErrorCode *status) { 616 string_write_xml(StringResource *res, const char* id, const char* /*language*/, UErrorCode *status) {
617 617
618 char *sid = NULL; 618 char *sid = NULL;
619 char* buf = NULL; 619 char* buf = NULL;
620 int32_t bufLen = 0; 620 int32_t bufLen = 0;
621 621
622 if(status==NULL || U_FAILURE(*status)){ 622 if(status==NULL || U_FAILURE(*status)){
623 return; 623 return;
624 } 624 }
625 625
626 sid = printContainer(res, trans_unit, NULL, NULL, id, status); 626 sid = printContainer(res, trans_unit, NULL, NULL, id, status);
627 627
628 write_tabs(out); 628 write_tabs(out);
629 629
630 write_utf8_file(out, UnicodeString(source)); 630 write_utf8_file(out, UnicodeString(source));
631 631
632 buf = convertAndEscape(&buf, 0, &bufLen, res->u.fString.fChars, res->u.fStri ng.fLength, status); 632 buf = convertAndEscape(&buf, 0, &bufLen, res->getBuffer(), res->length(), st atus);
633 633
634 if (U_FAILURE(*status)) { 634 if (U_FAILURE(*status)) {
635 return; 635 return;
636 } 636 }
637 637
638 write_utf8_file(out, UnicodeString(buf, bufLen, "UTF-8")); 638 write_utf8_file(out, UnicodeString(buf, bufLen, "UTF-8"));
639 write_utf8_file(out, UnicodeString(close_source)); 639 write_utf8_file(out, UnicodeString(close_source));
640 640
641 printNoteElements(&res->fComment, status); 641 printNoteElements(&res->fComment, status);
642 642
643 tabCount -= 1; 643 tabCount -= 1;
644 write_tabs(out); 644 write_tabs(out);
645 645
646 write_utf8_file(out, UnicodeString(close_trans_unit)); 646 write_utf8_file(out, UnicodeString(close_trans_unit));
647 647
648 uprv_free(buf); 648 uprv_free(buf);
649 uprv_free(sid); 649 uprv_free(sid);
650 } 650 }
651 651
652 static void 652 static void
653 alias_write_xml(struct SResource *res, const char* id, const char* /*language*/, UErrorCode *status) { 653 alias_write_xml(AliasResource *res, const char* id, const char* /*language*/, UE rrorCode *status) {
654 char *sid = NULL; 654 char *sid = NULL;
655 char* buf = NULL; 655 char* buf = NULL;
656 int32_t bufLen=0; 656 int32_t bufLen=0;
657 657
658 sid = printContainer(res, trans_unit, alias_restype, NULL, id, status); 658 sid = printContainer(res, trans_unit, alias_restype, NULL, id, status);
659 659
660 write_tabs(out); 660 write_tabs(out);
661 661
662 write_utf8_file(out, UnicodeString(source)); 662 write_utf8_file(out, UnicodeString(source));
663 663
664 buf = convertAndEscape(&buf, 0, &bufLen, res->u.fString.fChars, res->u.fStri ng.fLength, status); 664 buf = convertAndEscape(&buf, 0, &bufLen, res->getBuffer(), res->length(), st atus);
665 665
666 if(U_FAILURE(*status)){ 666 if(U_FAILURE(*status)){
667 return; 667 return;
668 } 668 }
669 write_utf8_file(out, UnicodeString(buf, bufLen, "UTF-8")); 669 write_utf8_file(out, UnicodeString(buf, bufLen, "UTF-8"));
670 write_utf8_file(out, UnicodeString(close_source)); 670 write_utf8_file(out, UnicodeString(close_source));
671 671
672 printNoteElements(&res->fComment, status); 672 printNoteElements(&res->fComment, status);
673 673
674 tabCount -= 1; 674 tabCount -= 1;
675 write_tabs(out); 675 write_tabs(out);
676 676
677 write_utf8_file(out, UnicodeString(close_trans_unit)); 677 write_utf8_file(out, UnicodeString(close_trans_unit));
678 678
679 uprv_free(buf); 679 uprv_free(buf);
680 uprv_free(sid); 680 uprv_free(sid);
681 } 681 }
682 682
683 static void 683 static void
684 array_write_xml(struct SResource *res, const char* id, const char* language, UEr rorCode *status) { 684 array_write_xml(ArrayResource *res, const char* id, const char* language, UError Code *status) {
685 char* sid = NULL; 685 char* sid = NULL;
686 int index = 0; 686 int index = 0;
687 687
688 struct SResource *current = NULL; 688 struct SResource *current = NULL;
689 689
690 sid = printContainer(res, group, array_restype, NULL, id, status); 690 sid = printContainer(res, group, array_restype, NULL, id, status);
691 691
692 current = res->u.fArray.fFirst; 692 current = res->fFirst;
693 693
694 while (current != NULL) { 694 while (current != NULL) {
695 char c[256] = {0}; 695 char c[256] = {0};
696 char* subId = NULL; 696 char* subId = NULL;
697 697
698 itostr(c, index, 10, 0); 698 itostr(c, index, 10, 0);
699 index += 1; 699 index += 1;
700 subId = getID(sid, c, subId); 700 subId = getID(sid, c, subId);
701 701
702 res_write_xml(current, subId, language, FALSE, status); 702 res_write_xml(current, subId, language, FALSE, status);
703 uprv_free(subId); 703 uprv_free(subId);
704 subId = NULL; 704 subId = NULL;
705 705
706 if(U_FAILURE(*status)){ 706 if(U_FAILURE(*status)){
707 return; 707 return;
708 } 708 }
709 709
710 current = current->fNext; 710 current = current->fNext;
711 } 711 }
712 712
713 tabCount -= 1; 713 tabCount -= 1;
714 write_tabs(out); 714 write_tabs(out);
715 write_utf8_file(out, UnicodeString(close_group)); 715 write_utf8_file(out, UnicodeString(close_group));
716 716
717 uprv_free(sid); 717 uprv_free(sid);
718 } 718 }
719 719
720 static void 720 static void
721 intvector_write_xml(struct SResource *res, const char* id, const char* /*languag e*/, UErrorCode *status) { 721 intvector_write_xml(IntVectorResource *res, const char* id, const char* /*langua ge*/, UErrorCode *status) {
722 char* sid = NULL; 722 char* sid = NULL;
723 char* ivd = NULL; 723 char* ivd = NULL;
724 uint32_t i=0; 724 uint32_t i=0;
725 uint32_t len=0; 725 uint32_t len=0;
726 char buf[256] = {'0'}; 726 char buf[256] = {'0'};
727 727
728 sid = printContainer(res, group, intvector_restype, NULL, id, status); 728 sid = printContainer(res, group, intvector_restype, NULL, id, status);
729 729
730 for(i = 0; i < res->u.fIntVector.fCount; i += 1) { 730 for(i = 0; i < res->fCount; i += 1) {
731 char c[256] = {0}; 731 char c[256] = {0};
732 732
733 itostr(c, i, 10, 0); 733 itostr(c, i, 10, 0);
734 ivd = getID(sid, c, ivd); 734 ivd = getID(sid, c, ivd);
735 len = itostr(buf, res->u.fIntVector.fArray[i], 10, 0); 735 len = itostr(buf, res->fArray[i], 10, 0);
736 736
737 write_tabs(out); 737 write_tabs(out);
738 write_utf8_file(out, UnicodeString("<")); 738 write_utf8_file(out, UnicodeString("<"));
739 write_utf8_file(out, UnicodeString(trans_unit)); 739 write_utf8_file(out, UnicodeString(trans_unit));
740 740
741 printAttribute("id", ivd, (int32_t)uprv_strlen(ivd)); 741 printAttribute("id", ivd, (int32_t)uprv_strlen(ivd));
742 printAttribute("restype", integer_restype, (int32_t) strlen(integer_rest ype)); 742 printAttribute("restype", integer_restype, (int32_t) strlen(integer_rest ype));
743 743
744 write_utf8_file(out, UnicodeString(">\n")); 744 write_utf8_file(out, UnicodeString(">\n"));
745 745
(...skipping 14 matching lines...) Expand all
760 760
761 tabCount -= 1; 761 tabCount -= 1;
762 write_tabs(out); 762 write_tabs(out);
763 763
764 write_utf8_file(out, UnicodeString(close_group)); 764 write_utf8_file(out, UnicodeString(close_group));
765 uprv_free(sid); 765 uprv_free(sid);
766 sid = NULL; 766 sid = NULL;
767 } 767 }
768 768
769 static void 769 static void
770 int_write_xml(struct SResource *res, const char* id, const char* /*language*/, U ErrorCode *status) { 770 int_write_xml(IntResource *res, const char* id, const char* /*language*/, UError Code *status) {
771 char* sid = NULL; 771 char* sid = NULL;
772 char buf[256] = {0}; 772 char buf[256] = {0};
773 uint32_t len = 0; 773 uint32_t len = 0;
774 774
775 sid = printContainer(res, trans_unit, integer_restype, NULL, id, status); 775 sid = printContainer(res, trans_unit, integer_restype, NULL, id, status);
776 776
777 write_tabs(out); 777 write_tabs(out);
778 778
779 write_utf8_file(out, UnicodeString(source)); 779 write_utf8_file(out, UnicodeString(source));
780 780
781 len = itostr(buf, res->u.fIntValue.fValue, 10, 0); 781 len = itostr(buf, res->fValue, 10, 0);
782 write_utf8_file(out, UnicodeString(buf, len)); 782 write_utf8_file(out, UnicodeString(buf, len));
783 783
784 write_utf8_file(out, UnicodeString(close_source)); 784 write_utf8_file(out, UnicodeString(close_source));
785 785
786 printNoteElements(&res->fComment, status); 786 printNoteElements(&res->fComment, status);
787 787
788 tabCount -= 1; 788 tabCount -= 1;
789 write_tabs(out); 789 write_tabs(out);
790 790
791 write_utf8_file(out, UnicodeString(close_trans_unit)); 791 write_utf8_file(out, UnicodeString(close_trans_unit));
792 792
793 uprv_free(sid); 793 uprv_free(sid);
794 sid = NULL; 794 sid = NULL;
795 } 795 }
796 796
797 static void 797 static void
798 bin_write_xml(struct SResource *res, const char* id, const char* /*language*/, U ErrorCode *status) { 798 bin_write_xml(BinaryResource *res, const char* id, const char* /*language*/, UEr rorCode *status) {
799 const char* m_type = application_mimetype; 799 const char* m_type = application_mimetype;
800 char* sid = NULL; 800 char* sid = NULL;
801 uint32_t crc = 0xFFFFFFFF; 801 uint32_t crc = 0xFFFFFFFF;
802 802
803 char fileName[1024] ={0}; 803 char fileName[1024] ={0};
804 int32_t tLen = ( outDir == NULL) ? 0 :(int32_t)uprv_strlen(outDir); 804 int32_t tLen = ( outDir == NULL) ? 0 :(int32_t)uprv_strlen(outDir);
805 char* fn = (char*) uprv_malloc(sizeof(char) * (tLen+1024 + 805 char* fn = (char*) uprv_malloc(sizeof(char) * (tLen+1024 +
806 (res->u.fBinaryValue.fFileNa me !=NULL ? 806 (res->fFileName !=NULL ?
807 uprv_strlen(res->u.fBinaryVa lue.fFileName) :0))); 807 uprv_strlen(res->fFileName) :0)));
808 const char* ext = NULL; 808 const char* ext = NULL;
809 809
810 char* f = NULL; 810 char* f = NULL;
811 811
812 fn[0]=0; 812 fn[0]=0;
813 813
814 if(res->u.fBinaryValue.fFileName != NULL){ 814 if(res->fFileName != NULL){
815 uprv_strcpy(fileName, res->u.fBinaryValue.fFileName); 815 uprv_strcpy(fileName, res->fFileName);
816 f = uprv_strrchr(fileName, '\\'); 816 f = uprv_strrchr(fileName, '\\');
817 817
818 if (f != NULL) { 818 if (f != NULL) {
819 f++; 819 f++;
820 } else { 820 } else {
821 f = fileName; 821 f = fileName;
822 } 822 }
823 823
824 ext = uprv_strrchr(fileName, '.'); 824 ext = uprv_strrchr(fileName, '.');
825 825
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 868
869 write_tabs(out); 869 write_tabs(out);
870 write_utf8_file(out, UnicodeString(bin_source)); 870 write_utf8_file(out, UnicodeString(bin_source));
871 871
872 tabCount += 1; 872 tabCount += 1;
873 write_tabs(out); 873 write_tabs(out);
874 874
875 write_utf8_file(out, UnicodeString(internal_file)); 875 write_utf8_file(out, UnicodeString(internal_file));
876 printAttribute("form", application_mimetype, (int32_t) uprv_strlen(appli cation_mimetype)); 876 printAttribute("form", application_mimetype, (int32_t) uprv_strlen(appli cation_mimetype));
877 877
878 while(i <res->u.fBinaryValue.fLength){ 878 while(i <res->fLength){
879 len = itostr(temp, res->u.fBinaryValue.fData[i], 16, 2); 879 len = itostr(temp, res->fData[i], 16, 2);
880 crc = computeCRC(temp, len, crc); 880 crc = computeCRC(temp, len, crc);
881 i++; 881 i++;
882 } 882 }
883 883
884 len = itostr(temp, crc, 10, 0); 884 len = itostr(temp, crc, 10, 0);
885 printAttribute("crc", temp, len); 885 printAttribute("crc", temp, len);
886 886
887 write_utf8_file(out, UnicodeString(">")); 887 write_utf8_file(out, UnicodeString(">"));
888 888
889 i = 0; 889 i = 0;
890 while(i <res->u.fBinaryValue.fLength){ 890 while(i <res->fLength){
891 len = itostr(temp, res->u.fBinaryValue.fData[i], 16, 2); 891 len = itostr(temp, res->fData[i], 16, 2);
892 write_utf8_file(out, UnicodeString(temp)); 892 write_utf8_file(out, UnicodeString(temp));
893 i += 1; 893 i += 1;
894 } 894 }
895 895
896 write_utf8_file(out, UnicodeString(close_internal_file)); 896 write_utf8_file(out, UnicodeString(close_internal_file));
897 897
898 tabCount -= 2; 898 tabCount -= 2;
899 write_tabs(out); 899 write_tabs(out);
900 900
901 write_utf8_file(out, UnicodeString(close_bin_source)); 901 write_utf8_file(out, UnicodeString(close_bin_source));
902 printNoteElements(&res->fComment, status); 902 printNoteElements(&res->fComment, status);
903 903
904 tabCount -= 1; 904 tabCount -= 1;
905 write_tabs(out); 905 write_tabs(out);
906 write_utf8_file(out, UnicodeString(close_bin_unit)); 906 write_utf8_file(out, UnicodeString(close_bin_unit));
907 907
908 uprv_free(sid); 908 uprv_free(sid);
909 sid = NULL; 909 sid = NULL;
910 } 910 }
911 911
912 uprv_free(fn); 912 uprv_free(fn);
913 } 913 }
914 914
915 915
916 916
917 static void 917 static void
918 table_write_xml(struct SResource *res, const char* id, const char* language, UBo ol isTopLevel, UErrorCode *status) { 918 table_write_xml(TableResource *res, const char* id, const char* language, UBool isTopLevel, UErrorCode *status) {
919 919
920 uint32_t i = 0; 920 uint32_t i = 0;
921 921
922 struct SResource *current = NULL; 922 struct SResource *current = NULL;
923 char* sid = NULL; 923 char* sid = NULL;
924 924
925 if (U_FAILURE(*status)) { 925 if (U_FAILURE(*status)) {
926 return ; 926 return ;
927 } 927 }
928 928
929 sid = printContainer(res, group, table_restype, NULL, id, status); 929 sid = printContainer(res, group, table_restype, NULL, id, status);
930 930
931 if(isTopLevel) { 931 if(isTopLevel) {
932 sid[0] = '\0'; 932 sid[0] = '\0';
933 } 933 }
934 934
935 current = res->u.fTable.fFirst; 935 current = res->fFirst;
936 i = 0; 936 i = 0;
937 937
938 while (current != NULL) { 938 while (current != NULL) {
939 res_write_xml(current, sid, language, FALSE, status); 939 res_write_xml(current, sid, language, FALSE, status);
940 940
941 if(U_FAILURE(*status)){ 941 if(U_FAILURE(*status)){
942 return; 942 return;
943 } 943 }
944 944
945 i += 1; 945 i += 1;
(...skipping 12 matching lines...) Expand all
958 void 958 void
959 res_write_xml(struct SResource *res, const char* id, const char* language, UBoo l isTopLevel, UErrorCode *status) { 959 res_write_xml(struct SResource *res, const char* id, const char* language, UBoo l isTopLevel, UErrorCode *status) {
960 960
961 if (U_FAILURE(*status)) { 961 if (U_FAILURE(*status)) {
962 return ; 962 return ;
963 } 963 }
964 964
965 if (res != NULL) { 965 if (res != NULL) {
966 switch (res->fType) { 966 switch (res->fType) {
967 case URES_STRING: 967 case URES_STRING:
968 string_write_xml (res, id, language, status); 968 string_write_xml (static_cast<StringResource *>(res), id, langua ge, status);
969 return; 969 return;
970 970
971 case URES_ALIAS: 971 case URES_ALIAS:
972 alias_write_xml (res, id, language, status); 972 alias_write_xml (static_cast<AliasResource *>(res), id, languag e, status);
973 return; 973 return;
974 974
975 case URES_INT_VECTOR: 975 case URES_INT_VECTOR:
976 intvector_write_xml (res, id, language, status); 976 intvector_write_xml (static_cast<IntVectorResource *>(res), id, lan guage, status);
977 return; 977 return;
978 978
979 case URES_BINARY: 979 case URES_BINARY:
980 bin_write_xml (res, id, language, status); 980 bin_write_xml (static_cast<BinaryResource *>(res), id, langua ge, status);
981 return; 981 return;
982 982
983 case URES_INT: 983 case URES_INT:
984 int_write_xml (res, id, language, status); 984 int_write_xml (static_cast<IntResource *>(res), id, language, status);
985 return; 985 return;
986 986
987 case URES_ARRAY: 987 case URES_ARRAY:
988 array_write_xml (res, id, language, status); 988 array_write_xml (static_cast<ArrayResource *>(res), id, languag e, status);
989 return; 989 return;
990 990
991 case URES_TABLE: 991 case URES_TABLE:
992 table_write_xml (res, id, language, isTopLevel, status); 992 table_write_xml (static_cast<TableResource *>(res), id, languag e, isTopLevel, status);
993 return; 993 return;
994 994
995 default: 995 default:
996 break; 996 break;
997 } 997 }
998 } 998 }
999 999
1000 *status = U_INTERNAL_PROGRAM_ERROR; 1000 *status = U_INTERNAL_PROGRAM_ERROR;
1001 } 1001 }
1002 1002
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 cleanup_bundle_write_xml: 1201 cleanup_bundle_write_xml:
1202 uprv_free(originalFileName); 1202 uprv_free(originalFileName);
1203 uprv_free(lang); 1203 uprv_free(lang);
1204 if(xmlfileName != NULL) { 1204 if(xmlfileName != NULL) {
1205 uprv_free(xmlfileName); 1205 uprv_free(xmlfileName);
1206 } 1206 }
1207 if(outputFileName != NULL){ 1207 if(outputFileName != NULL){
1208 uprv_free(outputFileName); 1208 uprv_free(outputFileName);
1209 } 1209 }
1210 } 1210 }
OLDNEW
« no previous file with comments | « source/tools/genrb/wrtjava.cpp ('k') | source/tools/gensprep/filterRFC3454.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698