Subject: CVS commit: src/bin/test
To: None <source-changes@NetBSD.org>
From: Christos Zoulas <christos@netbsd.org>
List: source-changes
Date: 03/28/2007 01:47:26
Module Name:	src
Committed By:	christos
Date:		Wed Mar 28 01:47:26 UTC 2007

Modified Files:
	src/bin/test: test.c

Log Message:
PR/36092: B K: algorithmic inefficiency in bin/test/test.c:t_lex
test(1) scans for "operators" linearly in an array using strcmp() to
find a match. Since the list of "operators" is fixed, split them
into one and two character ones, and ones that start with a `-' and
ones they don't. This way we can optimize the compare function to
just check for one or two characters. Sort and use bsearch(3). We
could have used a single sorted array and bsearch(3), to save some
complexity, but I decided to be a bit fancier.


To generate a diff of this commit:
cvs rdiff -r1.30 -r1.31 src/bin/test/test.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.