sort: -z outputs NUL terminated lines. Closes bug 1591.
This commit is contained in:
parent
75cddd8eb5
commit
3b92eaac53
@ -32,7 +32,7 @@ enum {
|
|||||||
FLAG_u = 8, /* Unique */
|
FLAG_u = 8, /* Unique */
|
||||||
FLAG_c = 0x10, /* Check: no output, exit(!ordered) */
|
FLAG_c = 0x10, /* Check: no output, exit(!ordered) */
|
||||||
FLAG_s = 0x20, /* Stable sort, no ascii fallback at end */
|
FLAG_s = 0x20, /* Stable sort, no ascii fallback at end */
|
||||||
FLAG_z = 0x40, /* Input is null terminated, not \n */
|
FLAG_z = 0x40, /* Input and output is NUL terminated, not \n */
|
||||||
/* These can be applied to search keys, the previous four can't */
|
/* These can be applied to search keys, the previous four can't */
|
||||||
FLAG_b = 0x80, /* Ignore leading blanks */
|
FLAG_b = 0x80, /* Ignore leading blanks */
|
||||||
FLAG_r = 0x100, /* Reverse */
|
FLAG_r = 0x100, /* Reverse */
|
||||||
@ -396,8 +396,9 @@ int sort_main(int argc, char **argv)
|
|||||||
if (linecount) linecount = flag+1;
|
if (linecount) linecount = flag+1;
|
||||||
}
|
}
|
||||||
/* Print it */
|
/* Print it */
|
||||||
|
flag = (option_mask32 & FLAG_z) ? '\0' : '\n';
|
||||||
for (i = 0; i < linecount; i++)
|
for (i = 0; i < linecount; i++)
|
||||||
fprintf(outfile, "%s\n", lines[i]);
|
fprintf(outfile, "%s%c", lines[i], flag);
|
||||||
|
|
||||||
fflush_stdout_and_exit(EXIT_SUCCESS);
|
fflush_stdout_and_exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
Update: doesn't work as described. Try "make check" from parent dir...
|
|
||||||
* * *
|
|
||||||
|
|
||||||
To run the test suite, change to this directory and run "./runtest". It will
|
To run the test suite, change to this directory and run "./runtest". It will
|
||||||
run all of the test cases, and list those with unexpected outcomes. Adding the
|
run all of the test cases, and list those with unexpected outcomes. Adding the
|
||||||
-v option will cause it to show expected outcomes as well. To only run the test
|
-v option will cause it to show expected outcomes as well. To only run the test
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# runtest [applet1] [applet2...]
|
||||||
|
|
||||||
# Run one old-style test.
|
# Run one old-style test.
|
||||||
# Tests are stored in applet/testcase shell scripts.
|
# Tests are stored in applet/testcase shell scripts.
|
||||||
# They are run using "sh -x -e applet/testcase".
|
# They are run using "sh -x -e applet/testcase".
|
||||||
|
@ -107,6 +107,12 @@ a c
|
|||||||
b c
|
b c
|
||||||
" ""
|
" ""
|
||||||
|
|
||||||
|
testing "sort -z outputs NUL terminated lines" "sort -z input" "\
|
||||||
|
one\0three\0two\0\
|
||||||
|
" "\
|
||||||
|
one\0two\0three\0\
|
||||||
|
" ""
|
||||||
|
|
||||||
testing "sort key doesn't strip leading blanks, disables fallback global sort" \
|
testing "sort key doesn't strip leading blanks, disables fallback global sort" \
|
||||||
"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n"
|
"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user