*** hashtable.c	Tue Dec  1 09:25:16 1998
--- uidhash.c	Thu Mar 25 17:06:27 1999
***************
*** 21,45 ****
  #include <stdlib.h>
  #include <string.h>
  
! #include "xmldef.h"
! #include "hashtable.h"
! 
! #ifdef XML_UNICODE
! #define keycmp wcscmp
! #else
! #define keycmp strcmp
! #endif
  
  #define INIT_SIZE 64
  
! static
! unsigned long hash(KEY s)
! {
!   unsigned long h = 0;
!   while (*s)
!     h = (h << 5) + h + (unsigned char)*s++;
!   return h;
! }
  
  NAMED *lookup(HASH_TABLE *table, KEY name, size_t createSize)
  {
--- 21,31 ----
  #include <stdlib.h>
  #include <string.h>
  
! #include "uidhash.h"
  
  #define INIT_SIZE 64
  
! #define hash(s) (((unsigned long) ((s) >> 32)) ^ ((unsigned long) ((s) & 0xffffffff)))
  
  NAMED *lookup(HASH_TABLE *table, KEY name, size_t createSize)
  {
***************
*** 59,65 ****
      for (i = h & (table->size - 1);
           table->v[i];
           i == 0 ? i = table->size - 1 : --i) {
!       if (keycmp(name, table->v[i]->name) == 0)
  	return table->v[i];
      }
      if (!createSize)
--- 45,52 ----
      for (i = h & (table->size - 1);
           table->v[i];
           i == 0 ? i = table->size - 1 : --i) {
! /*    if (keycmp(name, table->v[i]->name) == 0) */
!       if (name == table->v[i]->name)
  	return table->v[i];
      }
      if (!createSize)
