1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

sort: make compare_by honour settings.reverse

This allows sort --merge --reverse to work as well.
This commit is contained in:
David Laban 2016-08-11 20:30:58 +01:00
parent 8a8319a337
commit e1af1520e7
6 changed files with 35 additions and 5 deletions

View file

@ -265,10 +265,6 @@ fn exec(files: Vec<String>, settings: &Settings) -> i32 {
lines.dedup()
}
if settings.reverse {
lines.reverse()
}
if settings.check {
for (i, line) in lines.iter().enumerate() {
if line != &original_lines[i] {
@ -298,7 +294,12 @@ fn compare_by(a: &String, b: &String, settings: &Settings) -> Ordering {
for compare_fn in &settings.compare_fns {
let cmp = compare_fn(a, b);
if cmp != Ordering::Equal {
return cmp;
if settings.reverse {
return cmp.reverse();
}
else {
return cmp;
}
}
}
return Ordering::Equal;

View file

@ -0,0 +1,9 @@
9
8
7
6
5
4
3
2
1

View file

@ -0,0 +1,3 @@
7
4
1

View file

@ -0,0 +1,3 @@
8
5
2

View file

@ -0,0 +1,3 @@
9
6
3

View file

@ -80,6 +80,17 @@ fn test_merge_interleaved() {
.succeeds().stdout_is_fixture("merge_ints_interleaved.expected");
}
#[test]
fn test_merge_reversed() {
new_ucmd()
.arg("-m")
.arg("--reverse")
.arg("merge_ints_reversed_1.txt")
.arg("merge_ints_reversed_2.txt")
.arg("merge_ints_reversed_3.txt")
.succeeds().stdout_is_fixture("merge_ints_reversed.expected");
}
#[test]
fn test_check() {
new_ucmd()