if !full_version_line.trim().is_empty() => {
let full_version_line = full_version_line.trim();
- // used to be a regex "(^|[^0-9])([0-9]\.[0-9])([^0-9]|$)"
+ // used to be a regex "(^|[^0-9])([0-9]\.[0-9]+)"
for (pos, c) in full_version_line.char_indices() {
if !c.is_digit(10) { continue }
if pos + 2 >= full_version_line.len() { continue }
if pos > 0 && full_version_line.char_at_reverse(pos).is_digit(10) {
continue
}
- if pos + 3 < full_version_line.len() &&
- full_version_line.char_at(pos + 3).is_digit(10) {
- continue
+ let mut end = pos + 3;
+ while end < full_version_line.len() &&
+ full_version_line.char_at(end).is_digit(10) {
+ end += 1;
}
- return Some(full_version_line[pos..pos+3].to_owned());
+ return Some(full_version_line[pos..end].to_owned());
}
println!("Could not extract GDB version from line '{}'",
full_version_line);