Closed Jesse-Millwood closed 5 years ago
This snippet shows the functionality that I was able to isolate:
extern crate powerline;
extern crate dirs;
use powerline::part::Part;
use powerline::segments::*;
use std::env;
use std::path;
#[test]
fn cwd() {
let current_dir = path::PathBuf::from(env::var("HOME").unwrap());
println!("Current Directory: {:?}", current_dir);
let mut cwd = current_dir.to_str().unwrap();
println!("CWD: {:?}", cwd);
if let Some(home_path) = env::home_dir() {
let home_str = home_path.to_str().unwrap();
if cwd.starts_with(home_str) {
println!("in home directory");
println!("home_str: {:?} ({})", home_str, home_str.len());
cwd = &cwd[home_str.len() - 1..]
}
}
println!("CWD: {:?}", cwd);
let depth = cwd.matches("/").count() - 1;
println!("depth: {}", depth);
}
Thanks for discovering it and submitting a pull request. I will resolve this issue in a few hours.
On Wed, Mar 20, 2019, 12:48 Jesse Millwood notifications@github.com wrote:
This snippet shows the functionality that I was able to isolate:
extern crate powerline; extern crate dirs; use powerline::part::Part; use powerline::segments::*; use std::env; use std::path;
[test]
fn cwd() {
let current_dir = path::PathBuf::from(env::var("HOME").unwrap()); println!("Current Directory: {:?}", current_dir); let mut cwd = current_dir.to_str().unwrap(); println!("CWD: {:?}", cwd); if let Some(home_path) = env::home_dir() { let home_str = home_path.to_str().unwrap(); if cwd.starts_with(home_str) { println!("in home directory"); println!("home_str: {:?} ({})", home_str, home_str.len()); cwd = &cwd[home_str.len() - 1..] } } println!("CWD: {:?}", cwd); let depth = cwd.matches("/").count() - 1; println!("depth: {}", depth);
}
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Xeoeen/powerline-rust/pull/8#issuecomment-474796427, or mute the thread https://github.com/notifications/unsubscribe-auth/AQK504yed6Y7AFEgDFschlw6uwu9wPxhks5vYiAFgaJpZM4b9mA- .
When one is subtracted from the count of forward slashes in the cwd path and cwd is the home directory a 'attempt to subtract with overflow' runtime error occurs.