From 126d59542f89774a4c331a6a52b4c5dce4fce25e Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Tue, 31 Aug 2010 08:38:34 +0100 Subject: join: improve performance when operating on whole lines Following on from commit f86bb696, 01-02-2010, "join: make -t '' operate on the whole line". Bypassing the delimiter search in this case, gives about an 8% performance boost. * src/join (xfields): Don't bother looking for '\n' in the data, which we know won't be present. --- src/join.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/join.c b/src/join.c index fa18c9d06..6eaad6575 100644 --- a/src/join.c +++ b/src/join.c @@ -249,13 +249,13 @@ xfields (struct line *line) if (ptr == lim) return; - if (0 <= tab) + if (0 <= tab && tab != '\n') { char *sep; for (; (sep = memchr (ptr, tab, lim - ptr)) != NULL; ptr = sep + 1) extract_field (line, ptr, sep - ptr); } - else + else if (tab < 0) { /* Skip leading blanks before the first field. */ while (isblank (to_uchar (*ptr))) -- cgit v1.2.3-54-g00ecf