Test case:

if [ "$(printf 'a\na\0b' | ./sort -u)" = "$(printf 'a\na\0b')" ] ; then
        echo pass
else
        echo fail
fi
---
 libutil/linecmp.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/libutil/linecmp.c b/libutil/linecmp.c
index f5a6cf9..08fc0e3 100644
--- a/libutil/linecmp.c
+++ b/libutil/linecmp.c
@@ -10,15 +10,8 @@ linecmp(struct line *a, struct line *b)
 {
        int res = 0;
 
-       if (!(res = memcmp(a->data, b->data, MIN(a->len, b->len)))) {
-               if (a->len > b->len) {
-                       res = a->data[b->len];
-               } else if (b->len > a->len) {
-                       res = -b->data[a->len];
-               } else {
-                       res = 0;
-               }
-       }
+       if (!(res = memcmp(a->data, b->data, MIN(a->len, b->len))))
+               res = a->len - b->len;
 
        return res;
 }
-- 
2.6.2


Reply via email to