]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(hash_string): Rewrite to avoid cast.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 2 Aug 2004 22:49:34 +0000 (22:49 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 2 Aug 2004 22:49:34 +0000 (22:49 +0000)
lib/hash.c

index 945bb80f78aaf5c7c99da9ea5e46a539bc4547f9..374c22681534aee7b9cd009689e408d8a59b6a0f 100644 (file)
@@ -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;
 }