| OLD | NEW |
| 1 /* | 1 /* |
| 2 ******************************************************************************* | 2 ******************************************************************************* |
| 3 * | 3 * |
| 4 * Copyright (C) 1999-2013, International Business Machines | 4 * Copyright (C) 1999-2014, International Business Machines |
| 5 * Corporation and others. All Rights Reserved. | 5 * Corporation and others. All Rights Reserved. |
| 6 * | 6 * |
| 7 ******************************************************************************* | 7 ******************************************************************************* |
| 8 * file name: package.cpp | 8 * file name: package.cpp |
| 9 * encoding: US-ASCII | 9 * encoding: US-ASCII |
| 10 * tab size: 8 (not used) | 10 * tab size: 8 (not used) |
| 11 * indentation:4 | 11 * indentation:4 |
| 12 * | 12 * |
| 13 * created on: 2005aug25 | 13 * created on: 2005aug25 |
| 14 * created by: Markus W. Scherer | 14 * created by: Markus W. Scherer |
| (...skipping 20 matching lines...) Expand all Loading... |
| 35 | 35 |
| 36 #include <stdio.h> | 36 #include <stdio.h> |
| 37 #include <stdlib.h> | 37 #include <stdlib.h> |
| 38 #include <string.h> | 38 #include <string.h> |
| 39 | 39 |
| 40 | 40 |
| 41 static const int32_t kItemsChunk = 256; /* How much to increase the filesarray b
y each time */ | 41 static const int32_t kItemsChunk = 256; /* How much to increase the filesarray b
y each time */ |
| 42 | 42 |
| 43 // general definitions ----------------------------------------------------- *** | 43 // general definitions ----------------------------------------------------- *** |
| 44 | 44 |
| 45 #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) | |
| 46 | |
| 47 /* UDataInfo cf. udata.h */ | 45 /* UDataInfo cf. udata.h */ |
| 48 static const UDataInfo dataInfo={ | 46 static const UDataInfo dataInfo={ |
| 49 (uint16_t)sizeof(UDataInfo), | 47 (uint16_t)sizeof(UDataInfo), |
| 50 0, | 48 0, |
| 51 | 49 |
| 52 U_IS_BIG_ENDIAN, | 50 U_IS_BIG_ENDIAN, |
| 53 U_CHARSET_FAMILY, | 51 U_CHARSET_FAMILY, |
| 54 (uint8_t)sizeof(UChar), | 52 (uint8_t)sizeof(UChar), |
| 55 0, | 53 0, |
| 56 | 54 |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 // Use the first entry's prefix. Must be a new-style package. | 585 // Use the first entry's prefix. Must be a new-style package. |
| 588 const char *prefixLimit=strchr(s, U_TREE_ENTRY_SEP_CHAR); | 586 const char *prefixLimit=strchr(s, U_TREE_ENTRY_SEP_CHAR); |
| 589 if(prefixLimit==NULL) { | 587 if(prefixLimit==NULL) { |
| 590 fprintf(stderr, | 588 fprintf(stderr, |
| 591 "icupkg: --auto_toc_prefix[_with_type] but " | 589 "icupkg: --auto_toc_prefix[_with_type] but " |
| 592 "the first entry \"%s\" does not contain a '%c'\n", | 590 "the first entry \"%s\" does not contain a '%c'\n", |
| 593 s, U_TREE_ENTRY_SEP_CHAR); | 591 s, U_TREE_ENTRY_SEP_CHAR); |
| 594 exit(U_INVALID_FORMAT_ERROR); | 592 exit(U_INVALID_FORMAT_ERROR); |
| 595 } | 593 } |
| 596 prefixLength=(int32_t)(prefixLimit-s); | 594 prefixLength=(int32_t)(prefixLimit-s); |
| 597 if(prefixLength==0 || prefixLength>=LENGTHOF(pkgPrefix)) { | 595 if(prefixLength==0 || prefixLength>=UPRV_LENGTHOF(pkgPrefix)) { |
| 598 fprintf(stderr, | 596 fprintf(stderr, |
| 599 "icupkg: --auto_toc_prefix[_with_type] but " | 597 "icupkg: --auto_toc_prefix[_with_type] but " |
| 600 "the prefix of the first entry \"%s\" is empty or too lo
ng\n", | 598 "the prefix of the first entry \"%s\" is empty or too lo
ng\n", |
| 601 s); | 599 s); |
| 602 exit(U_INVALID_FORMAT_ERROR); | 600 exit(U_INVALID_FORMAT_ERROR); |
| 603 } | 601 } |
| 604 if(prefixEndsWithType && s[prefixLength-1]!=type) { | 602 if(prefixEndsWithType && s[prefixLength-1]!=type) { |
| 605 fprintf(stderr, | 603 fprintf(stderr, |
| 606 "icupkg: --auto_toc_prefix_with_type but " | 604 "icupkg: --auto_toc_prefix_with_type but " |
| 607 "the prefix of the first entry \"%s\" does not end with
'%c'\n", | 605 "the prefix of the first entry \"%s\" does not end with
'%c'\n", |
| 608 s, type); | 606 s, type); |
| 609 exit(U_INVALID_FORMAT_ERROR); | 607 exit(U_INVALID_FORMAT_ERROR); |
| 610 } | 608 } |
| 611 memcpy(pkgPrefix, s, prefixLength); | 609 memcpy(pkgPrefix, s, prefixLength); |
| 610 pkgPrefix[prefixLength]=0; |
| 612 memcpy(prefix, s, ++prefixLength); // include the / | 611 memcpy(prefix, s, ++prefixLength); // include the / |
| 613 } else { | 612 } else { |
| 614 // Use the package basename as prefix. | 613 // Use the package basename as prefix. |
| 615 int32_t inPkgNameLength=strlen(inPkgName); | 614 int32_t inPkgNameLength=strlen(inPkgName); |
| 616 memcpy(prefix, inPkgName, inPkgNameLength); | 615 memcpy(prefix, inPkgName, inPkgNameLength); |
| 617 prefixLength=inPkgNameLength; | 616 prefixLength=inPkgNameLength; |
| 618 | 617 |
| 619 if( (int32_t)strlen(s)>=(inPkgNameLength+2) && | 618 if( (int32_t)strlen(s)>=(inPkgNameLength+2) && |
| 620 0==memcmp(s, inPkgName, inPkgNameLength) && | 619 0==memcmp(s, inPkgName, inPkgNameLength) && |
| 621 s[inPkgNameLength]=='_' | 620 s[inPkgNameLength]=='_' |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1304 } | 1303 } |
| 1305 | 1304 |
| 1306 void Package::ensureItemCapacity() | 1305 void Package::ensureItemCapacity() |
| 1307 { | 1306 { |
| 1308 if((itemCount+1)>itemMax) { | 1307 if((itemCount+1)>itemMax) { |
| 1309 setItemCapacity(itemCount+kItemsChunk); | 1308 setItemCapacity(itemCount+kItemsChunk); |
| 1310 } | 1309 } |
| 1311 } | 1310 } |
| 1312 | 1311 |
| 1313 U_NAMESPACE_END | 1312 U_NAMESPACE_END |
| OLD | NEW |