mirror of
https://github.com/uutils/coreutils.git
synced 2026-06-10 15:48:22 -07:00
Merge pull request #1184 from jiangjun1983/hostname_xgethostname_fix
hostname: bug fix for non-windows xgethostname
This commit is contained in:
@@ -157,13 +157,12 @@ fn xgethostname() -> io::Result<String> {
|
||||
};
|
||||
|
||||
if err == 0 {
|
||||
let mut last_char = name.iter().position(|byte| *byte == 0).unwrap_or(namelen);
|
||||
if last_char == name.len() {
|
||||
let null_pos = name.iter().position(|byte| *byte == 0).unwrap_or(namelen);
|
||||
if null_pos == namelen {
|
||||
name.push(0);
|
||||
last_char += 1;
|
||||
}
|
||||
|
||||
Ok(CStr::from_bytes_with_nul(&name[..last_char])
|
||||
Ok(CStr::from_bytes_with_nul(&name[..null_pos + 1])
|
||||
.unwrap()
|
||||
.to_string_lossy()
|
||||
.into_owned())
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
use common::util::*;
|
||||
|
||||
#[test]
|
||||
fn test_hostname() {
|
||||
let ls_default_res = new_ucmd!().succeeds();
|
||||
let ls_short_res = new_ucmd!().arg("-s").succeeds();
|
||||
let ls_domain_res = new_ucmd!().arg("-d").succeeds();
|
||||
|
||||
assert!(ls_default_res.stdout.len() >= ls_short_res.stdout.len());
|
||||
assert!(ls_default_res.stdout.len() >= ls_domain_res.stdout.len());
|
||||
}
|
||||
|
||||
+2
-1
@@ -91,6 +91,7 @@ generic! {
|
||||
"tsort", test_tsort;
|
||||
"unexpand", test_unexpand;
|
||||
"uniq", test_uniq;
|
||||
"wc", test_wc;
|
||||
// Be aware of the trailing semicolon after the last item
|
||||
"wc", test_wc
|
||||
"hostname", test_hostname
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user