projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce Z39.50/SRU operation timeout.
[pazpar2-moved-to-github.git]
/
src
/
termlists.c
diff --git
a/src/termlists.c
b/src/termlists.c
index
ad0529c
..
892e6d9
100644
(file)
--- a/
src/termlists.c
+++ b/
src/termlists.c
@@
-1,5
+1,5
@@
/* This file is part of Pazpar2.
/* This file is part of Pazpar2.
- Copyright (C) 2006-2008 Index Data
+ Copyright (C) 2006-2009 Index Data
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@@
-17,16
+17,16
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
*/
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <yaz/yaz-util.h>
-
#if HAVE_CONFIG_H
#include <config.h>
#endif
#if HAVE_CONFIG_H
#include <config.h>
#endif
+#include <stdlib.h>
+#include <string.h>
+#include <yaz/yaz-util.h>
+
#include "termlists.h"
#include "termlists.h"
+#include "jenkins_hash.h"
// Discussion:
// As terms are found in incoming records, they are added to (or updated in) a
// Discussion:
// As terms are found in incoming records, they are added to (or updated in) a
@@
-53,24
+53,6
@@
struct termlist
NMEM nmem;
};
NMEM nmem;
};
-
-// Jenkins one-at-a-time hash (from wikipedia)
-static unsigned int hash(const unsigned char *key)
-{
- unsigned int hash = 0;
-
- while (*key)
- {
- hash += *(key++);
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- hash += (hash << 15);
- return hash;
-}
-
struct termlist *termlist_create(NMEM nmem, int numterms, int highscore_size)
{
int hashsize = 1;
struct termlist *termlist_create(NMEM nmem, int numterms, int highscore_size)
{
int hashsize = 1;
@@
-149,7
+131,7
@@
void termlist_insert(struct termlist *tl, const char *term)
for (cp = buf + strlen(buf); cp != buf && strchr(",. -", cp[-1]); cp--)
cp[-1] = '\0';
for (cp = buf + strlen(buf); cp != buf && strchr(",. -", cp[-1]); cp--)
cp[-1] = '\0';
- bucket = hash((unsigned char *)buf) & tl->hashmask;
+ bucket = jenkins_hash((unsigned char *)buf) & tl->hashmask;
for (p = &tl->hashtable[bucket]; *p; p = &(*p)->next)
{
if (!strcmp(buf, (*p)->term.term))
for (p = &tl->hashtable[bucket]; *p; p = &(*p)->next)
{
if (!strcmp(buf, (*p)->term.term))
@@
-187,7
+169,9
@@
struct termlist_score **termlist_highscore(struct termlist *tl, int *len)
/*
* Local variables:
* c-basic-offset: 4
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
+