← Commit list

5479c435f

Denys Vlasenko
Denys Vlasenko
2022-07-29
SUCCESS Duration: 157s

Subject

sort: fix sort -s -u, closes 14871

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/sort.c+5 -4
@@ -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]);
testsuite/sort.tests+10 -0
@@ -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