Clean code a bit

This commit is contained in:
Guillaume Gomez 2016-08-27 21:01:27 +02:00
parent 11946956a6
commit 286ae72fb7

View file

@ -584,18 +584,15 @@ pub fn home_dir() -> Option<PathBuf> {
n if n < 0 => 512 as usize,
n => n as usize,
};
let me = libc::getuid();
loop {
let mut buf = Vec::with_capacity(amt);
let mut passwd: libc::passwd = mem::zeroed();
let mut buf = Vec::with_capacity(amt);
let mut passwd: libc::passwd = mem::zeroed();
if getpwduid_r(me, &mut passwd, &mut buf).is_some() {
let ptr = passwd.pw_dir as *const _;
let bytes = CStr::from_ptr(ptr).to_bytes().to_vec();
return Some(OsStringExt::from_vec(bytes))
} else {
return None;
}
if getpwduid_r(libc::getuid(), &mut passwd, &mut buf).is_some() {
let ptr = passwd.pw_dir as *const _;
let bytes = CStr::from_ptr(ptr).to_bytes().to_vec();
Some(OsStringExt::from_vec(bytes))
} else {
None
}
}
}