Skip to main content

sniff/
symbol_graph_path_core.rs

1pub fn normalize_path(p: &str) -> String {
2    let mut normalized = p.replace('\\', "/");
3    if normalized.starts_with("//?/") || normalized.starts_with("\\\\?\\") {
4        normalized = normalized[4..].to_string();
5    }
6    if normalized.starts_with("./") {
7        normalized = normalized[2..].to_string();
8    }
9    while normalized.contains("/./") {
10        normalized = normalized.replace("/./", "/");
11    }
12    if normalized.ends_with("/.") {
13        normalized.truncate(normalized.len().saturating_sub(2));
14    }
15    normalized
16}