Changeset 16

Show
Ignore:
Timestamp:
01/15/07 3:17:11 PM (2 years ago)
Author:
aaron
Message:

fixed intel byte order issues

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/source/CocoaICU.m

    r6 r16  
    4141 
    4242void findAndReplaceFirst(){ 
    43         NSString *searchString = @"bbdfdbbababababaklsdjfababababab"
    44         NSString *patternString = @"([ab]+)"
     43        NSString *searchString = [NSString stringWithUTF8String:"庭庢庭庢圭圀庭庢"]
     44        NSString *patternString = [NSString stringWithUTF8String:"([庭庢]+)"]
    4545        ICUPattern *p = [ICUPattern patternWithString:patternString]; 
    4646        ICUMatcher *matcher = [ICUMatcher matcherWithPattern:p overString:searchString]; 
    47         NSString *result = [matcher replaceFirstWithString:@"replacement"]; 
     47        NSString *result = [matcher replaceFirstWithString:[NSString stringWithUTF8String:"匇匈匇匊"]]; 
    4848        NSLog(@"result = %@", result); 
    4949} 
    5050 
    5151void findAndReplaceAll() { 
    52         NSString *searchString = @"bbdfdbbababababaklsdjfababababab"
    53         NSString *patternString = @"([ab]+)"
     52        NSString *searchString = [NSString stringWithUTF8String:"❾➈➈➈➈➈➈❾➈➈➈➈➈➈❾➈➈➈➈➈➈"]
     53        NSString *patternString = [NSString stringWithUTF8String:"(❾➈➈➈➈➈➈)"]
    5454        ICUPattern *p = [ICUPattern patternWithString:patternString]; 
    5555        ICUMatcher *matcher = [ICUMatcher matcherWithPattern:p overString:searchString]; 
    56         NSString *result = [matcher replaceAllWithString:@"replacement"]; 
     56        NSString *result = [matcher replaceAllWithString:[NSString stringWithUTF8String:"ŞŞËËËËààààÀ"]]; 
    5757        NSLog(@"result = %@", result); 
    5858} 
  • trunk/source/ICUMatcher.m

    r10 r16  
    122122 
    123123                groupSize = InitialGroupSize; // reset to default 
    124                 NSString *result = [[[NSString alloc] initWithBytes:dest length:buffSize*sizeof(UChar) encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF16)] autorelease]; 
     124                NSString *result = [[[NSString alloc] initWithBytes:dest length:buffSize*sizeof(UChar) encoding:[NSString nativeUTF16Encoding]] autorelease]; 
    125125                free(dest); 
    126126                return result; 
     
    183183        NSString *result = [[[NSString alloc] initWithBytes:destString 
    184184                                                                                                 length:resultLength * sizeof(UChar) 
    185                                                                                            encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF16)] autorelease]; 
     185                                                                                           encoding:[NSString nativeUTF16Encoding]] autorelease]; 
    186186        free(destString); 
    187187        return result;   
  • trunk/source/ICUPattern.m

    r14 r16  
    3939-(unsigned)flags; 
    4040-(UChar *)textToSearch; 
    41 //-(URegularExpression *)re; 
    4241-(void)setTextToSearch:(UChar *)utf16String; 
    4342 
     
    9190 
    9291-(NSString *)stringToSearch { 
    93         return [NSString stringWithUTF16String:[self textToSearch]]; 
     92        return [NSString stringWithICUString:[self textToSearch]]; 
    9493} 
    9594 
     
    180179                } 
    181180 
    182                 return [[[NSString alloc] initWithBytes:p length:len encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF16)] autorelease]; 
     181                return [[[NSString alloc] initWithBytes:p length:len encoding:[NSString nativeUTF16Encoding]] autorelease]; 
    183182        } 
    184183 
     
    227226                                NSAssert(i < destFieldsCapacity, @"Unexpected number of components found in split."); 
    228227                                UChar *offsetStart = destFields[i];                                      
    229                                 [results addObject:[NSString stringWithUTF16String:offsetStart]]; 
     228                                [results addObject:[NSString stringWithICUString:offsetStart]]; 
    230229                        } 
    231230                        isDone = YES; 
  • trunk/source/NSStringICUAdditions.h

    r6 r16  
    1212@interface NSString (NSStringICUAdditions) 
    1313 
    14 +(NSString *)stringWithUTF16String:(void *)utf16EncodedString; 
     14+(NSStringEncoding)nativeUTF16Encoding; 
     15 
     16+(NSString *)stringWithICUString:(void *)utf16EncodedString; 
    1517-(void *)UTF16String; 
    1618 
  • trunk/source/NSStringICUAdditions.m

    r14 r16  
    2424 
    2525@interface NSString (NSStringICUPrivateAdditions) 
     26 
    2627@end 
    2728 
     
    5859} 
    5960 
    60 +(NSString *)stringWithUTF16String:(void *)utf16EncodedString { 
     61+(NSString *)stringWithICUString:(void *)utf16EncodedString { 
    6162        return [[[NSString alloc] initWithBytes:utf16EncodedString  
    6263                                                                         length:u_strlen(utf16EncodedString)*sizeof(UChar)  
    63                                                                    encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF16)] autorelease];     
     64                                                                   encoding:[self nativeUTF16Encoding]] autorelease];    
     65
     66 
     67+(NSStringEncoding)nativeUTF16Encoding { 
     68        CFStringEncoding stringEncoding; 
     69#if __BIG_ENDIAN__ 
     70        stringEncoding = kCFStringEncodingUTF16BE; 
     71#elif __LITTLE_ENDIAN__ 
     72        stringEncoding = kCFStringEncodingUTF16LE; 
     73#endif 
     74 
     75        return CFStringConvertEncodingToNSStringEncoding(stringEncoding); 
    6476} 
    6577 
    6678-(void *)UTF16String { 
    67         UChar *ret = (UChar *)[self cStringUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF16)]; 
     79        UChar *ret = (UChar *)[self cStringUsingEncoding:[NSString nativeUTF16Encoding]]; 
     80 
    6881        // for some reason, the null-terminator doesn't always show up at the right place and this 
    6982        // causes extra characters to be created in the unicode string.  We remove them here by force.