On Sat, Mar 12, 2016 at 11:46:31AM -0800, Michael Forney wrote: > In eb9bda878736344d1bef06d42e57e96de542a663, a bug was introduced in the > handling of -1 return values from getline. Since the type of the len > field in struct line is unsigned, the break condition was never true. > This caused sort -u to never succeed.
This should be "sort -c" (here and in subject). Please amend before committing. > --- > sort.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/sort.c b/sort.c > index 5cfe801..90ee911 100644 > --- a/sort.c > +++ b/sort.c > @@ -210,10 +210,15 @@ check(FILE *fp, const char *fname) > { > static struct line prev, cur, tmp; > static size_t prevsize, cursize, tmpsize; > + ssize_t len; > > - if (!prev.data && (prev.len = getline(&prev.data, &prevsize, fp)) < 0) > - eprintf("getline:"); > - while ((cur.len = getline(&cur.data, &cursize, fp)) > 0) { > + if (!prev.data) { > + if ((len = getline(&prev.data, &prevsize, fp)) < 0) > + eprintf("getline:"); > + prev.len = len; > + } > + while ((len = getline(&cur.data, &cursize, fp)) > 0) { > + cur.len = len; > if (uflag > slinecmp(&cur, &prev)) { > if (!Cflag) { > weprintf("disorder %s: ", fname); > -- > 1.8.5.1 >