X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fhash-functions.c;h=c43017313a789666ca83bb8373351bc59972a3b0;hb=0d70eff1e5dcd89a73f09ce6bc999ccbec8234b5;hp=af8b4c2c83a68f51423a2e934ed483f6fffa3f1f;hpb=871dc2a4ffe7bd1c1b0a7c5a451ce9e23d4b7969;p=pspp
diff --git a/src/libpspp/hash-functions.c b/src/libpspp/hash-functions.c
index af8b4c2c83..c43017313a 100644
--- a/src/libpspp/hash-functions.c
+++ b/src/libpspp/hash-functions.c
@@ -15,7 +15,9 @@
along with this program. If not, see . */
#include
-#include
+
+#include "libpspp/hash-functions.h"
+
#include
#include
#include
@@ -100,13 +102,12 @@ hash_string (const char *s, unsigned int basis)
return hash_bytes (s, strlen (s), basis);
}
-/* Returns a hash value for null-terminated string S, with
- lowercase and uppercase letters treated as equal, starting
- from BASIS. */
+/* Returns a hash value for the N bytes at S, with lowercase and uppercase
+ letters treated as equal, starting from BASIS. */
unsigned int
-hash_case_string (const char *s, unsigned int basis)
+hash_case_bytes (const void *s_, size_t n, unsigned int basis)
{
- size_t n = strlen (s);
+ const char *s = s_;
uint32_t a, b, c;
uint32_t tmp[3];
int i;
@@ -139,6 +140,15 @@ hash_case_string (const char *s, unsigned int basis)
return c;
}
+/* Returns a hash value for null-terminated string S, with
+ lowercase and uppercase letters treated as equal, starting
+ from BASIS. */
+unsigned int
+hash_case_string (const char *s, unsigned int basis)
+{
+ return hash_case_bytes (s, strlen (s), basis);
+}
+
/* Returns a hash value for integer X, starting from BASIS. */
unsigned int
hash_int (int x, unsigned int basis)