Skip to content

Commit b233569

Browse files
BenWiederhakesylvestre
authored andcommitted
shuf: fix error message text on negative-sized ranges
Found by @cakebaker: #6011 (comment)
1 parent 4ee3f68 commit b233569

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/uu/shuf/src/shuf.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,11 @@ fn parse_range(input_range: &str) -> Result<RangeInclusive<usize>, String> {
471471
let end = to
472472
.parse::<usize>()
473473
.map_err(|_| format!("invalid input range: {}", to.quote()))?;
474-
Ok(begin..=end)
474+
if begin <= end || begin == end + 1 {
475+
Ok(begin..=end)
476+
} else {
477+
Err(format!("invalid input range: {}", input_range.quote()))
478+
}
475479
} else {
476480
Err(format!("invalid input range: {}", input_range.quote()))
477481
}

tests/by-util/test_shuf.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,11 @@ fn test_range_empty() {
762762

763763
#[test]
764764
fn test_range_empty_minus_one() {
765-
new_ucmd!().arg("-i5-3").succeeds().no_output();
765+
new_ucmd!()
766+
.arg("-i5-3")
767+
.fails()
768+
.no_stdout()
769+
.stderr_only("shuf: invalid input range: '5-3'\n");
766770
}
767771

768772
#[test]
@@ -792,5 +796,5 @@ fn test_range_repeat_empty_minus_one() {
792796
.arg("-ri5-3")
793797
.fails()
794798
.no_stdout()
795-
.stderr_only("shuf: no lines to repeat\n");
799+
.stderr_only("shuf: invalid input range: '5-3'\n");
796800
}

0 commit comments

Comments
 (0)