aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-stdx/src/path.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/helix-stdx/src/path.rs b/helix-stdx/src/path.rs
index 1dc4d0b2..42d7a9b6 100644
--- a/helix-stdx/src/path.rs
+++ b/helix-stdx/src/path.rs
@@ -2,6 +2,7 @@ pub use etcetera::home_dir;
use std::{
borrow::Cow,
+ ffi::OsString,
path::{Component, Path, PathBuf},
};
@@ -12,7 +13,10 @@ use crate::env::current_working_dir;
pub fn fold_home_dir(path: &Path) -> PathBuf {
if let Ok(home) = home_dir() {
if let Ok(stripped) = path.strip_prefix(&home) {
- return PathBuf::from("~").join(stripped);
+ let mut path = OsString::with_capacity(2 + stripped.as_os_str().len());
+ path.push("~/");
+ path.push(stripped);
+ return PathBuf::from(path);
}
}