sort: fix sort -s -u, closes 14871
No binary (build failed)
—
(log yok)
| @@ -652,11 +652,12 @@ int sort_main(int argc UNUSED_PARAM, char **argv) | |
| /* Handle -u */ | |
| if (option_mask32 & FLAG_u) { | |
| int j = 0; | |
| - | /* coreutils 6.3 drop lines for which only key is the same |
| - | * -- disabling last-resort compare, or else compare_keys() |
| - | * will be the same only for completely identical lines. |
| + | /* coreutils 6.3 drop lines for which only key is the same: |
| + | * - disabling last-resort compare, or else compare_keys() |
| + | * will be the same only for completely identical lines |
| + | * - disabling -s (same reasons) |
| */ | |
| - | option_mask32 |= FLAG_no_tie_break; |
| + | option_mask32 = (option_mask32 | FLAG_no_tie_break) & (~FLAG_s); |
| for (i = 1; i < linecount; i++) { | |
| if (compare_keys(&lines[j], &lines[i]) == 0) | |
| free(lines[i]); | |
| @@ -230,4 +230,14 @@ testing "sort -k2,2M" \ | |
| 3 March | |
| " "" | |
| + | testing "sort -s -u" \ |
| + | "sort -s -u -k 2 input" "\ |
| + | z a |
| + | z b |
| + | " "\ |
| + | z b |
| + | a b |
| + | z a |
| + | a a" "" |
| + | |
| exit $FAILCOUNT | |