14e0d2e9e95c2f48c98344492229072035de861c
[oweals/cde.git] / cde / programs / nsgmls / Hash.C
1 /* $XConsortium: Hash.C /main/1 1996/07/29 16:52:41 cde-hp $ */
2 // Copyright (c) 1994 James Clark
3 // See the file COPYING for copying permission.
4
5 #ifdef __GNUG__
6 #pragma implementation
7 #endif
8 #include "splib.h"
9 #include "Hash.h"
10 #include "StringC.h"
11
12 #ifdef SP_NAMESPACE
13 namespace SP_NAMESPACE {
14 #endif
15
16 unsigned long Hash::hash(const StringC &str)
17 {
18   const Char *p = str.data();
19   unsigned long h = 0;
20   for (size_t n = str.size(); n > 0; n--)
21     h = (h << 5) + h + *p++;    // from Chris Torek
22   return h;
23 }
24
25 #ifdef SP_NAMESPACE
26 }
27 #endif