Mercurial > public > mercurial-scm > hg
comparison rust/hg-core/src/utils/files.rs @ 42484:f305f1d7d559
rust-filepatterns: add comment about Windows path handling
As I replied to the Phabricator message, this is wrong. And I even suspect
it wouldn't compile because of multiple type mismatches.
I think, in Rust where type system is rock solid, we can live with UTF-8
strings except for the bottom storage layer and the top UI/command layer.
We'll still have to get around undecodable characters not to be lost, but
I think it's okay to drop such filenames from match result if they don't
match in UTF-8 world, not in Latin-1 world.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 15 Jun 2019 10:58:53 +0900 |
parents | 9609430d3625 |
children | cad3dde7a573 |
comparison
equal
deleted
inserted
replaced
42483:a4a468b00d44 | 42484:f305f1d7d559 |
---|---|
7 use std::os::unix::ffi::OsStrExt; | 7 use std::os::unix::ffi::OsStrExt; |
8 os_str = std::ffi::OsStr::from_bytes(bytes); | 8 os_str = std::ffi::OsStr::from_bytes(bytes); |
9 } | 9 } |
10 #[cfg(windows)] | 10 #[cfg(windows)] |
11 { | 11 { |
12 // TODO: convert from Windows MBCS (ANSI encoding) to WTF8. | |
13 // Perhaps, the return type would have to be Result<PathBuf>. | |
12 use std::os::windows::ffi::OsStrExt; | 14 use std::os::windows::ffi::OsStrExt; |
13 os_str = std::ffi::OsString::from_wide(bytes); | 15 os_str = std::ffi::OsString::from_wide(bytes); |
14 } | 16 } |
15 | 17 |
16 Path::new(os_str) | 18 Path::new(os_str) |