/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Glenn Fowler24* AT&T Bell Laboratories25*26* hash table library27*/2829#include "hashlib.h"3031/*32* return a running 32 bit checksum of string s33*34* c is the return value from a previous35* memsum() or strsum() call, 0 on the first call36*37* the result is the same on all implementations38*/3940unsigned long41strsum(const char* as, register unsigned long c)42{43register const unsigned char* s = (const unsigned char*)as;44register int n;4546while (n = *s++) HASHPART(c, n);47#if LONG_MAX > 214748364748return(c & 0xffffffff);49#else50return(c);51#endif52}535455