diff options
author | Stanislav Brabec <utx@penguin.cz> | 2008-02-19 16:31:45 +0000 |
---|---|---|
committer | Stanislav Brabec <utx@penguin.cz> | 2008-02-19 16:31:45 +0000 |
commit | 13b71d3646054a698956460aa4246d9c9167dee4 (patch) | |
tree | 46f9ae6254dfb9dbcfae8e39abec2337acf594c2 | |
parent | 16c6101cf1f1ec91af70d9b327d1af8d108f59ff (diff) |
Output NUL terminated lines with sort -z (busybox#1591). Fixes updatedb.
-rw-r--r-- | packages/busybox/busybox-1.9.1/sort-z-nul.patch | 50 | ||||
-rw-r--r-- | packages/busybox/busybox_1.9.1.bb | 3 |
2 files changed, 52 insertions, 1 deletions
diff --git a/packages/busybox/busybox-1.9.1/sort-z-nul.patch b/packages/busybox/busybox-1.9.1/sort-z-nul.patch new file mode 100644 index 0000000000..55452a4524 --- /dev/null +++ b/packages/busybox/busybox-1.9.1/sort-z-nul.patch @@ -0,0 +1,50 @@ +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); + } diff --git a/packages/busybox/busybox_1.9.1.bb b/packages/busybox/busybox_1.9.1.bb index b41f1779b0..237f6a6dac 100644 --- a/packages/busybox/busybox_1.9.1.bb +++ b/packages/busybox/busybox_1.9.1.bb @@ -1,5 +1,5 @@ require busybox.inc -PR = "r1" +PR = "r2" SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ file://busybox-cron \ @@ -12,6 +12,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ file://syslog.conf \ file://udhcpscript.patch;patch=1 \ file://adduser-longops.patch;patch=1 \ + file://sort-z-nul.patch;patch=1;status=upstream \ file://umount.busybox \ file://run_parts.c \ file://defconfig" |