Alex Murray noticed that my djb2 implementation mistakenly initialized to 0, rather than to 5381. Corrected with this:
>From 54590ca833dba62041af045e7bc7c09b90b54b71 Mon Sep 17 00:00:00 2001 From: Alex Murray <alex.mur...@canonical.com> Date: Tue, 17 Aug 2021 03:24:37 -0700 Subject: [PATCH] grep: correct DJB2 initialization * src/grep.c (hash_pattern): DJB2 starts with 5381, not 0. --- src/grep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/grep.c b/src/grep.c index 271b6b9..8fed550 100644 --- a/src/grep.c +++ b/src/grep.c @@ -126,7 +126,7 @@ static Hash_table *pattern_table; static size_t _GL_ATTRIBUTE_PURE hash_pattern (void const *pat, size_t n_buckets) { - size_t h = 0; + size_t h = 5381; intptr_t pat_offset = (intptr_t) pat - 1; unsigned char const *s = (unsigned char const *) pattern_array + pat_offset; for ( ; *s != '\n'; s++) --