Changeset 17
- Timestamp:
- 09/12/07 11:03:54 AM (10 months ago)
- Files:
-
- trunk/source/ICUPattern.h (modified) (1 diff)
- trunk/source/ICUPattern.m (modified) (6 diffs)
- trunk/source/NSStringICUAdditions.h (modified) (1 diff)
- trunk/source/NSStringICUAdditions.m (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/source/ICUPattern.h
r10 r17 14 14 * flags. see http://icu.sourceforge.net/apiref/icu4c/uregex_8h.html#874989dfec4cbeb6baf4d1a51cb529ae 15 15 */ 16 extern unsignedCaseInsensitiveMatching;17 extern unsignedComments;18 extern unsignedDotMatchesAll;19 extern unsignedMultiline;20 extern unsignedUnicodeWordBoundaries;16 extern const unsigned ICUCaseInsensitiveMatching; 17 extern const unsigned ICUComments; 18 extern const unsigned ICUDotMatchesAll; 19 extern const unsigned ICUMultiline; 20 extern const unsigned ICUUnicodeWordBoundaries; 21 21 22 22 /*! trunk/source/ICUPattern.m
r16 r17 29 29 #import <unicode/ustring.h> 30 30 31 unsigned CaseInsensitiveMatching = UREGEX_CASE_INSENSITIVE;32 unsigned Comments = UREGEX_COMMENTS;33 unsigned DotMatchesAll = UREGEX_DOTALL;34 unsigned Multiline = UREGEX_MULTILINE;35 unsigned UnicodeWordBoundaries = UREGEX_UWORD;31 unsigned const ICUCaseInsensitiveMatching = UREGEX_CASE_INSENSITIVE; 32 unsigned const ICUComments = UREGEX_COMMENTS; 33 unsigned const ICUDotMatchesAll = UREGEX_DOTALL; 34 unsigned const ICUMultiline = UREGEX_MULTILINE; 35 unsigned const ICUUnicodeWordBoundaries = UREGEX_UWORD; 36 36 37 37 @interface ICUPattern (Private) … … 39 39 -(unsigned)flags; 40 40 -(UChar *)textToSearch; 41 -(void)setTextToSearch:(UChar *)utf16String;42 41 43 42 @end … … 85 84 free(re); 86 85 87 [stringToSearch release]; 86 if(textToSearch != NULL) 87 free(textToSearch); 88 88 [super dealloc]; 89 89 } … … 94 94 95 95 -(void)setStringToSearch:(NSString *)aStringToSearchOver { 96 if(stringToSearch != nil) 97 [stringToSearch release]; 98 99 stringToSearch = [aStringToSearchOver retain]; 100 101 [self setTextToSearch:[aStringToSearchOver UTF16String]]; 102 } 103 104 -(void)setTextToSearch:(UChar *)utf16String { 96 NSParameterAssert(aStringToSearchOver); 97 UChar *utf16String = [aStringToSearchOver copyUTF16String]; 105 98 UErrorCode status = 0; 106 99 … … 109 102 [self reset]; 110 103 111 textToSearch = utf16String; // retained by the NSString112 113 104 if(U_FAILURE(status)) { 114 textToSearch = NULL;105 free(utf16String); 115 106 [NSException raise:@"Invalid String Exception" 116 107 format:@"Could not set text to match against: %s", u_errorName(status)]; 117 108 } 109 110 if(textToSearch) 111 free(textToSearch); 112 textToSearch = utf16String; 118 113 } 119 114 … … 187 182 -(NSArray *)componentsSplitFromString:(NSString *)stringToSplit 188 183 { 189 [self set TextToSearch:[stringToSplit UTF16String]];184 [self setStringToSearch:stringToSplit]; 190 185 BOOL isDone = NO; 191 186 UErrorCode status = 0; trunk/source/NSStringICUAdditions.h
r16 r17 16 16 +(NSString *)stringWithICUString:(void *)utf16EncodedString; 17 17 -(void *)UTF16String; 18 -(void *)copyUTF16String; 18 19 19 20 -(NSArray *)findPattern:(NSString *)aRegex; trunk/source/NSStringICUAdditions.m
r16 r17 86 86 } 87 87 88 -(void *)copyUTF16String { 89 unsigned int length = [self length]; 90 UChar *utf16String = malloc((length+1)*sizeof(UChar)); 91 [self getCharacters: utf16String]; 92 utf16String[length] = 0; 93 return utf16String; 94 } 95 88 96 @end