Summary: 0001591: inconsistent behavior of sort -z URL: http://busybox.net/bugs/view.php?id=1591 http://www.busybox.net/cgi-bin/viewcvs.cgi/trunk/busybox/coreutils/sort.c?rev=21004&r1=20435&r2=21004&makepatch=1&diff_format=u Description: busybox sort -z does: use NUL instead of EOL on input GNU sort -z does: use NUL instead of EOL on input and output GNU sort -z documents: use NUL instead of EOL on input Additional Information: Note that sort -z is not part of any standard. But several applications (e. g. GNU findutils updatedb) depends on the NUL-on-output behavior. GNU sort documentation bug was reported to coreutils maintainers. Notes: vda 02-13-08 06:30 (0004364) Fixed in revision 21004. Thanks! --- busybox/coreutils/sort.c 2007/11/16 12:39:16 20435 +++ busybox/coreutils/sort.c 2008/02/13 14:30:33 21004 @@ -32,7 +32,7 @@ FLAG_u = 8, /* Unique */ FLAG_c = 0x10, /* Check: no output, exit(!ordered) */ 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 */ FLAG_b = 0x80, /* Ignore leading blanks */ FLAG_r = 0x100, /* Reverse */ @@ -396,8 +396,9 @@ if (linecount) linecount = flag+1; } /* Print it */ + flag = (option_mask32 & FLAG_z) ? '\0' : '\n'; 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); }