summaryrefslogtreecommitdiff
path: root/lib/hash.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2004-08-07 00:09:38 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2004-08-07 00:09:38 +0000
commita62be9f4039b4499cfbb76e394cad2259d03fa84 (patch)
tree5f444ac72b8b2418f2530af42b6c2fee823d18db /lib/hash.c
parent4d52451995952d65b6772a7849e88866b3542157 (diff)
downloadgnulib-a62be9f4039b4499cfbb76e394cad2259d03fa84.tar.gz
Merge from coreutils.
Diffstat (limited to 'lib/hash.c')
-rw-r--r--lib/hash.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/hash.c b/lib/hash.c
index 945bb80f78..374c226815 100644
--- a/lib/hash.c
+++ b/lib/hash.c
@@ -1,7 +1,7 @@
/* hash - hashing table processing.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
- Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free
+ Software Foundation, Inc.
Written by Jim Meyering, 1992.
@@ -400,9 +400,10 @@ hash_string (const char *string, size_t n_buckets)
((Byte) + ROTATE_LEFT (Value, 7))
size_t value = 0;
+ unsigned char ch;
- for (; *string; string++)
- value = HASH_ONE_CHAR (value, (unsigned char) *string);
+ for (; (ch = *string); string++)
+ value = HASH_ONE_CHAR (value, ch);
return value % n_buckets;
# undef ROTATE_LEFT
@@ -420,9 +421,10 @@ size_t
hash_string (const char *string, size_t n_buckets)
{
size_t value = 0;
+ unsigned char ch;
- while (*string)
- value = (value * 31 + (unsigned char) *string++) % n_buckets;
+ for (; (ch = *string); string++)
+ value = (value * 31 + ch) % n_buckets;
return value;
}