From a69a2d68560d3d1bc2cf9111d2d92d71d98b760d Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 13 Jan 2000 07:34:44 +0000 Subject: [PATCH] (fillbuf): Avoid quadratic behavior with long lines. Also, stop worrying about ancient memchr bug (misbehavior when size is zero), since other code doesn't worry either. --- src/sort.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sort.c b/src/sort.c index 4bfa853c2e..f6e76bcec8 100644 --- a/src/sort.c +++ b/src/sort.c @@ -1,5 +1,5 @@ /* sort - sort lines of text (with all kinds of options). - Copyright (C) 88, 1991-1999 Free Software Foundation, Inc. + Copyright (C) 88, 1991-2000 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -543,10 +543,9 @@ fillbuf (struct buffer *buf, FILE *fp) int cc; memmove (buf->buf, buf->buf + buf->used - buf->left, buf->left); - buf->used = buf->left; + cc = buf->used = buf->left; - while (!feof (fp) && (buf->used == 0 - || !memchr (buf->buf, eolchar, buf->used))) + while (!feof (fp) && !memchr (buf->buf + buf->used - cc, eolchar, cc)) { if (buf->used == buf->alloc) { -- 2.47.3