From c918fb6a6b98f07a628cb06da417c9aafe0fa47b Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Mon, 21 Dec 2015 11:14:08 +0100 Subject: [PATCH] dirname: fix "/" "." "" --- src/dirname/dirname.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/dirname/dirname.rs b/src/dirname/dirname.rs index feb582851..60e2df5b8 100644 --- a/src/dirname/dirname.rs +++ b/src/dirname/dirname.rs @@ -54,9 +54,21 @@ directory).", NAME, VERSION); if !matches.free.is_empty() { for path in matches.free.iter() { let p = Path::new(path); - let d = p.parent().unwrap().to_str(); - if d.is_some() { - print!("{}", d.unwrap()); + match p.parent() { + Some(d) => { + if d.components().next() == None { + print!(".") + } else { + print!("{}", d.to_string_lossy()); + } + } + None => { + if p.is_absolute() { + print!("/"); + } else { + print!("."); + } + } } print!("{}", separator); }