unexpand: add -f short alias for --first-only (#8229)

This commit is contained in:
Timothy G.
2025-06-19 21:59:23 +02:00
committed by GitHub
parent 39c793c885
commit d05460a16c
3 changed files with 24 additions and 0 deletions
+5
View File
@@ -193,3 +193,8 @@ Just like on macOS, `base32/base64/basenc` provides `-D` to decode data.
## `shred`
The number of random passes is deterministic in both GNU and uutils. However, uutils `shred` computes the number of random passes in a simplified way, specifically `max(3, x / 10)`, which is very close but not identical to the number of random passes that GNU would do. This also satisfies an expectation that reasonable users might have, namely that the number of random passes increases monotonically with the number of passes overall; GNU `shred` violates this assumption.
## `unexpand`
GNU `unexpand` provides `--first-only` to convert only leading sequences of blanks. We support a
second way: `-f` like busybox.
+1
View File
@@ -175,6 +175,7 @@ pub fn uu_app() -> Command {
)
.arg(
Arg::new(options::FIRST_ONLY)
.short('f')
.long(options::FIRST_ONLY)
.help(get_message("unexpand-help-first-only"))
.action(ArgAction::SetTrue),
+18
View File
@@ -95,6 +95,24 @@ fn unexpand_first_only_1() {
.stdout_is("\t\t A B");
}
#[test]
fn unexpand_first_only_2() {
new_ucmd!()
.args(&["-t3", "-f"])
.pipe_in(" A B")
.succeeds()
.stdout_is("\t\t A B");
}
#[test]
fn unexpand_first_only_3() {
new_ucmd!()
.args(&["-f", "-t8"])
.pipe_in(" A B")
.succeeds()
.stdout_is("\tA B");
}
#[test]
fn unexpand_trailing_space_0() {
// evil