Adium

Changeset 23065

Show
Ignore:
Timestamp:
04/03/2008 05:34:07 PM (8 months ago)
Author:
evands
Message:

Properly trim the whole set of invalid characters, not just a subset of them. Fixes #7267, and all tests now pass.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Frameworks/AIHyperlinks Framework/Source/SHHyperlinkScanner.m

    r23057 r23065  
    125125    } 
    126126 
     127        static NSCharacterSet *endSet = nil; 
     128    if (!endSet) { 
     129#define INVALID_URL_EDGE_CHARACTERS @"\"'-,:;<>()[]{}.?!" 
     130        endSet = [[NSCharacterSet characterSetWithCharactersInString:INVALID_URL_EDGE_CHARACTERS] retain]; 
     131    } 
     132         
    127133        static NSCharacterSet *startSet = nil; 
    128134    if (!startSet) { 
    129135        NSMutableCharacterSet *mutableStartSet = [[NSMutableCharacterSet alloc] init]; 
    130136        [mutableStartSet formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    131         [mutableStartSet formUnionWithCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"\"'-,:;<([{.?!"]]; 
     137                //Note that endSet is composed of INVALID_URL_EDGE_CHARACTERS 
     138        [mutableStartSet formUnionWithCharacterSet:endSet]; 
    132139                startSet = [[NSCharacterSet characterSetWithBitmapRepresentation:[mutableStartSet bitmapRepresentation]] retain]; 
    133140                [mutableStartSet release]; 
    134     } 
    135  
    136         static NSCharacterSet *endSet = nil; 
    137     if (!endSet) { 
    138         endSet = [[NSCharacterSet characterSetWithCharactersInString:@"\"',;>)]}.?!"] retain]; 
    139141    } 
    140142