about summary refs log tree commit diff
path: root/library/std/src/sys/path
diff options
context:
space:
mode:
authorChris Denton <chris@chrisdenton.dev>2024-07-18 14:35:01 +0000
committerPietro Albini <pietro.albini@ferrous-systems.com>2024-09-03 14:36:21 +0200
commitc811d3126f87930b3de3c9e5e7b8d37e9d9d0cae (patch)
treec707c476e0d12f29d4aaf267e3fbd662a70ddc80 /library/std/src/sys/path
parentd6c8169c186ab16a3404cd0d0866674018e8a19e (diff)
downloadrust-c811d3126f87930b3de3c9e5e7b8d37e9d9d0cae.tar.gz
rust-c811d3126f87930b3de3c9e5e7b8d37e9d9d0cae.zip
More robust extension checking
Diffstat (limited to 'library/std/src/sys/path')
-rw-r--r--library/std/src/sys/path/windows.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/library/std/src/sys/path/windows.rs b/library/std/src/sys/path/windows.rs
index 21841eb18cc..2ae9a0a9199 100644
--- a/library/std/src/sys/path/windows.rs
+++ b/library/std/src/sys/path/windows.rs
@@ -1,5 +1,6 @@
 use crate::ffi::{OsStr, OsString};
 use crate::path::{Path, PathBuf, Prefix};
+use crate::sys::api::utf16;
 use crate::sys::pal::{c, fill_utf16_buf, os2path, to_u16s};
 use crate::{io, ptr};
 
@@ -19,6 +20,10 @@ pub fn is_verbatim_sep(b: u8) -> bool {
     b == b'\\'
 }
 
+pub fn is_verbatim(path: &[u16]) -> bool {
+    path.starts_with(utf16!(r"\\?\")) || path.starts_with(utf16!(r"\??\"))
+}
+
 /// Returns true if `path` looks like a lone filename.
 pub(crate) fn is_file_name(path: &OsStr) -> bool {
     !path.as_encoded_bytes().iter().copied().any(is_sep_byte)