summary refs log tree commit diff
path: root/intl/hash-string.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-02-19 20:54:38 +0000
committerRoland McGrath <roland@gnu.org>1996-02-19 20:54:38 +0000
commitbe10a86854716071a64f559e1f5bc94e145d0fdb (patch)
treee7abce4d5ba8da4ff17dad3510c4bea6cb3e037e /intl/hash-string.h
parent1cbca0d93c6c1507c4e69a21e60c77e704b7e1da (diff)
downloadglibc-be10a86854716071a64f559e1f5bc94e145d0fdb.tar.gz
glibc-be10a86854716071a64f559e1f5bc94e145d0fdb.tar.xz
glibc-be10a86854716071a64f559e1f5bc94e145d0fdb.zip
*** 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.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/intl/hash-string.h b/intl/hash-string.h
index e846b507ac..ef1f448d86 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;
 	}
     }