projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move OPT_QUIT into the lua registry
[apps/madmutt.git]
/
lib-lib
/
hash.c
diff --git
a/lib-lib/hash.c
b/lib-lib/hash.c
index
61e2e4f
..
eea6cd6
100644
(file)
--- a/
lib-lib/hash.c
+++ b/
lib-lib/hash.c
@@
-22,13
+22,7
@@
* Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
*/
* Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "mem.h"
-#include "str.h"
-#include "hash.h"
+#include "lib-lib.h"
#define SOMEPRIME 149711
#define SOMEPRIME 149711
@@
-100,11
+94,11
@@
int hash_insert(HASH *table, const char *key, void *data, int allow_dup)
table->table[h] = ptr;
table->curnelem++;
} else {
table->table[h] = ptr;
table->curnelem++;
} else {
- struct hash_elem *tmp, *last;
- int r;
+ struct hash_elem **e;
+
+ for (e = &table->table[h]; *e; e = &(*e)->next) {
+ int r = m_strcmp((*e)->key, key);
- for (tmp = table->table[h], last = NULL; tmp; last = tmp, tmp = tmp->next) {
- r = m_strcmp(tmp->key, key);
if (r == 0) {
p_delete(&ptr);
return (-1);
if (r == 0) {
p_delete(&ptr);
return (-1);
@@
-112,12
+106,8
@@
int hash_insert(HASH *table, const char *key, void *data, int allow_dup)
if (r > 0)
break;
}
if (r > 0)
break;
}
- if (last) {
- last->next = ptr;
- } else {
- table->table[h] = ptr;
- }
- ptr->next = tmp;
+ ptr->next = *e;
+ *e = ptr;
table->curnelem++;
}
return h;
table->curnelem++;
}
return h;