Changeset 388 for trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEParser.m
- Timestamp:
- 02/22/08 19:53:07 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEParser.m
r384 r388 115 115 116 116 static BOOL ICCF_StringIncludesCharacter(NSString *s, unichar character, NSRange range) { 117 return ([s rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString:117 NSRange result = [s rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: 118 118 [NSString stringWithCharacters: &character length: 1]] 119 options: NSLiteralSearch range: range].location != NSNotFound); 119 options: NSLiteralSearch range: range]; 120 return (result.location != NSNotFound); 120 121 } 121 122 … … 135 136 NSRange delimiterRange; 136 137 unsigned extraLen; 138 BOOL multiLine = NO; 137 139 138 140 ICCF_CheckRange(range); … … 161 163 } else { 162 164 NSCAssert(delimiterRange.length == 1, @"Internal error: delimiter matched range is not of length 1"); 165 if ([s characterAtIndex: delimiterRange.location] == '<') { // XXX move to expandBoth to handle clicking in middle 166 multiLine = YES; 167 urlRightDelimiters = [NSCharacterSet characterSetWithCharactersInString: @">"]; 168 } 163 169 range.length += range.location - delimiterRange.location - 1; 164 170 range.location = delimiterRange.location + 1; 165 171 } 166 172 173 167 174 expandBack: 168 175 // XXX instead of length of string, make this stop at the max URL length to prevent protracted searches … … 182 189 extraLen = [s length] - NSMaxRange(range); 183 190 191 unichar opening, closing = [s characterAtIndex: delimiterRange.location]; 192 if (closing == '>' && !multiLine && ICCF_StringIncludesCharacter(s, '<', NSMakeRange(0, range.location))) { 193 urlLeftDelimiters = [NSCharacterSet characterSetWithCharactersInString: @"<"]; 194 goto expandFront; // XXX move to expandBoth to handle clicking in middle 195 } 184 196 // grow URL past closing paren/brace/bracket if we've seen an open paren/brace/bracket 185 unichar opening, closing = [s characterAtIndex: delimiterRange.location];186 197 if (closing == ')') opening = '('; 187 198 else if (closing == '}') opening = '{';
Note:
See TracChangeset
for help on using the changeset viewer.