@@ -93,26 +93,20 @@ fn find_raw_urls(
9393    trace ! ( "looking for raw urls in {text}" ) ; 
9494    // For now, we only check "full" URLs (meaning, starting with "http://" or "https://"). 
9595    for  match_ in  URL_REGEX . find_iter ( text)  { 
96-         let  url_range = match_. range ( ) ; 
96+         let  mut  url_range = match_. range ( ) ; 
97+         url_range. start  += range. start ; 
98+         url_range. end  += range. start ; 
9799        let  mut  without_brackets = None ; 
98-         let  mut  extra_range = 0 ; 
99100        // If the whole text is contained inside `[]`, then we need to replace the brackets and 
100101        // not just add `<>`. 
101-         if  whole_text[ ..range . start  +  url_range. start ] . ends_with ( '[' ) 
102-             && range . start  +  url_range. end  <= whole_text. len ( ) 
103-             && whole_text[ range . start  +  url_range. end ..] . starts_with ( ']' ) 
102+         if  whole_text[ ..url_range. start ] . ends_with ( '[' ) 
103+             && url_range. end  <= whole_text. len ( ) 
104+             && whole_text[ url_range. end ..] . starts_with ( ']' ) 
104105        { 
105-             extra_range = 1 ; 
106+             url_range. start  -= 1 ; 
107+             url_range. end  += 1 ; 
106108            without_brackets = Some ( match_. as_str ( ) ) ; 
107109        } 
108-         f ( 
109-             cx, 
110-             "this URL is not a hyperlink" , 
111-             Range  { 
112-                 start :  range. start  + url_range. start  - extra_range, 
113-                 end :  range. start  + url_range. end  + extra_range, 
114-             } , 
115-             without_brackets, 
116-         ) ; 
110+         f ( cx,  "this URL is not a hyperlink" ,  url_range,  without_brackets) ; 
117111    } 
118112} 
0 commit comments