diff options
author | Roland McGrath <roland@gnu.org> | 1996-02-19 20:54:38 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-02-19 20:54:38 +0000 |
commit | be10a86854716071a64f559e1f5bc94e145d0fdb (patch) | |
tree | e7abce4d5ba8da4ff17dad3510c4bea6cb3e037e /intl/hash-string.h | |
parent | 1cbca0d93c6c1507c4e69a21e60c77e704b7e1da (diff) | |
download | glibc-be10a86854716071a64f559e1f5bc94e145d0fdb.zip glibc-be10a86854716071a64f559e1f5bc94e145d0fdb.tar.gz glibc-be10a86854716071a64f559e1f5bc94e145d0fdb.tar.bz2 |
*** empty log message ***
Mon Feb 19 15:30:26 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* stdio-common/tstscanf.c (main): Add check for "0" as %d.
* sysdeps/stub/msync.c: Undo change of Jan 29; just two args.
Only some systems have three args; let them define their own stub.
* sysdeps/generic/dl-sysdep.c: Declare _dl_secure.
* sysdeps/generic/machine-gmon.h: New file.
* gmon/Makefile (distribute): Add machine-gmon.h.
* gmon/mcount.c: Undo changes of Feb 13.
Include "machine-gmon.h".
Sun Feb 18 13:24:06 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/direct.h: File removed, since it is
identical to unix/common/direct.h.
* sysdeps/unix/Makefile [no_deps]: Don't include s-proto.d.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Don't add ipc.
* stdio-common/Makefile (tests): Remove scanf6.
* sysdeps/unix/sysv/linux/Makefile (non-lib.a): Append libieee.a.
* time/mktime.c (mktime): Move static variable localtime_offset to
file scope.
* stdio-common/vfscanf.c: Put '0' in buffer before scanning for %i
base indicator.
Thu Feb 15 16:56:17 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/dl-machine.h (elf_machine_load_address): Corrected.
(ELF_MACHINE_BEFORE_RTLD_RELOC): Define.
(_dl_runtime_resolve): Save %a1 as well.
(ELF_MACHINE_RUNTIME_FIXUP_ARGS): Add second dummy arg.
(elf_machine_relplt): Define.
* elf/dl-runtime.c: Include possible extra args in declaration of
fixup.
Diffstat (limited to 'intl/hash-string.h')
-rw-r--r-- | intl/hash-string.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/intl/hash-string.h b/intl/hash-string.h index e846b50..ef1f448 100644 --- a/intl/hash-string.h +++ b/intl/hash-string.h @@ -1,5 +1,5 @@ /* hash-string - Implements a string hashing function. - Copyright (C) 1995 Software Foundation, Inc. + Copyright (C) 1995 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,22 +21,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* @@ end of prolog @@ */ -#ifndef BITSPERBYTE -# define BITSPERBYTE 8 +#ifndef PARAMS +# if __STDC__ +# define PARAMS(Args) Args +# else +# define PARAMS(Args) () +# endif #endif -#ifndef LONGBITS -# define LONGBITS (sizeof (long) * BITSPERBYTE) -#endif /* LONGBITS */ +/* We assume to have `unsigned long int' value with at least 32 bits. */ +#define HASHWORDBITS 32 + /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, - 1986, 1987 Bell Telephone Laboratories, Inc.] */ + 1986, 1987 Bell Telephone Laboratories, Inc.] */ +static unsigned long hash_string PARAMS ((const char *__str_param)); + static inline unsigned long hash_string (str_param) const char *str_param; { - unsigned long hval, g; + unsigned long int hval, g; const char *str = str_param; /* Compute the hash value for the given string. */ @@ -45,10 +51,10 @@ hash_string (str_param) { hval <<= 4; hval += (unsigned long) *str++; - g = hval & ((unsigned long) 0xf << (LONGBITS - 4)); + g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); if (g != 0) { - hval ^= g >> (LONGBITS - 8); + hval ^= g >> (HASHWORDBITS - 8); hval ^= g; } } |