From 03c40b2db24aeb8c37575b9375f23e22f17e0919 Mon Sep 17 00:00:00 2001 From: Terts Diepraam Date: Sat, 12 Nov 2022 15:02:52 +0100 Subject: [PATCH] sort: allow a sort mode to appear multiple times A test case for this is `sort -k 2n,2n` which should be accepted, because `n` is compatible with itself. Resolves issue #4129. --- src/uu/sort/src/sort.rs | 2 +- tests/by-util/test_sort.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/uu/sort/src/sort.rs b/src/uu/sort/src/sort.rs index 9d23034ad44..e7ca996771c 100644 --- a/src/uu/sort/src/sort.rs +++ b/src/uu/sort/src/sort.rs @@ -458,7 +458,7 @@ impl KeySettings { } fn set_sort_mode(&mut self, mode: SortMode) -> Result<(), String> { - if self.mode != SortMode::Default { + if self.mode != SortMode::Default && self.mode != mode { return Err(format!( "options '-{}{}' are incompatible", self.mode.get_short_name().unwrap(), diff --git a/tests/by-util/test_sort.rs b/tests/by-util/test_sort.rs index 5c753470aa4..fe63eb2c7fb 100644 --- a/tests/by-util/test_sort.rs +++ b/tests/by-util/test_sort.rs @@ -1156,3 +1156,8 @@ fn test_tmp_files_deleted_on_sigint() { // `sort` should have deleted the temporary directory again. assert!(read_dir(at.plus("tmp_dir")).unwrap().next().is_none()); } + +#[test] +fn test_same_sort_mode_twice() { + new_ucmd!().args(&["-k", "2n,2n", "empty.txt"]).succeeds(); +}