From 898d325aeabdbb8a76bfdcf33caf3dce134990ae Mon Sep 17 00:00:00 2001 From: Anup Mahindre Date: Sun, 30 May 2021 18:00:52 +0530 Subject: [PATCH] ls: Fix minor output mismatch When a single directory is passed to ls in recursive mode, uutils ls won't print the directory name ====================== GNU ls: z: ====================== ====================== uutils ls: ====================== This commit fixes this minor inconsistency and adds corresponding test. --- src/uu/ls/src/ls.rs | 2 +- tests/by-util/test_ls.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 60c076441..5846cb0aa 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -1223,7 +1223,7 @@ fn list(locs: Vec, config: Config) -> i32 { sort_entries(&mut dirs, &config); for dir in dirs { - if locs.len() > 1 { + if locs.len() > 1 || config.recursive { let _ = writeln!(out, "\n{}:", dir.p_buf.display()); } enter_directory(&dir, &config, &mut out); diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index d884948e6..9614f561e 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -899,6 +899,12 @@ fn test_ls_recursive() { scene.ucmd().arg("a").succeeds(); scene.ucmd().arg("a/a").succeeds(); + scene + .ucmd() + .arg("z") + .arg("-R") + .succeeds() + .stdout_contains(&"z:"); let result = scene .ucmd() .arg("--color=never")