fix panic in Path::strip_prefix
This commit is contained in:
parent
8fbd92d0b9
commit
b87dd755ca
@ -725,7 +725,7 @@ fn include_cur_dir(&self) -> bool {
|
|||||||
if self.has_root() {
|
if self.has_root() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let mut iter = self.path[self.prefix_len()..].iter();
|
let mut iter = self.path[self.prefix_remaining()..].iter();
|
||||||
match (iter.next(), iter.next()) {
|
match (iter.next(), iter.next()) {
|
||||||
(Some(&b'.'), None) => true,
|
(Some(&b'.'), None) => true,
|
||||||
(Some(&b'.'), Some(&b)) => self.is_sep_byte(b),
|
(Some(&b'.'), Some(&b)) => self.is_sep_byte(b),
|
||||||
|
@ -114,3 +114,15 @@ fn test_parse_prefix_verbatim_device() {
|
|||||||
assert_eq!(prefix, parse_prefix(r"/\?\C:\windows\system32\notepad.exe"));
|
assert_eq!(prefix, parse_prefix(r"/\?\C:\windows\system32\notepad.exe"));
|
||||||
assert_eq!(prefix, parse_prefix(r"\\?/C:\windows\system32\notepad.exe"));
|
assert_eq!(prefix, parse_prefix(r"\\?/C:\windows\system32\notepad.exe"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// See #93586 for more infomation.
|
||||||
|
#[test]
|
||||||
|
fn test_windows_prefix_components() {
|
||||||
|
use crate::path::Path;
|
||||||
|
|
||||||
|
let path = Path::new("C:");
|
||||||
|
let mut components = path.components();
|
||||||
|
let drive = components.next().expect("drive is expected here");
|
||||||
|
assert_eq!(drive.as_os_str(), OsStr::new("C:"));
|
||||||
|
assert_eq!(components.as_path(), Path::new(""));
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user