-/* $Id: rset.c,v 1.48 2005-06-06 21:31:09 adam Exp $
+/* $Id: rset.c,v 1.51 2005-06-09 10:39:53 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
rset->free_list = NULL;
rset->use_list = NULL;
rset->hits_count = 0;
- rset->hits_limit = 1000;
+ rset->hits_limit = 0;
rset->hits_round = 1000;
rset->keycontrol = kcontrol;
(*kcontrol->inc)(kcontrol);
}
}
+struct ord_list *ord_list_create(NMEM nmem)
+{
+ return 0;
+}
+
+struct ord_list *ord_list_append(NMEM nmem, struct ord_list *list,
+ int ord)
+{
+ struct ord_list *n = nmem_malloc(nmem, sizeof(*n));
+ n->ord = ord;
+ n->next = list;
+ return n;
+}
+
+struct ord_list *ord_list_dup(NMEM nmem, struct ord_list *list)
+{
+ struct ord_list *n = ord_list_create(nmem);
+ for (; list; list = list->next)
+ n = ord_list_append(nmem, n, list->ord);
+ return n;
+}
+
/**
\brief Creates a TERMID entry.
\param name Term/Name buffer with given length
\param type Term Type, Z_Term_general, Z_Term_characterString,..
\param nmem memory for term.
\param ol ord list
+ \param reg_type register type
*/
TERMID rset_term_create(const char *name, int length, const char *flags,
- int type, NMEM nmem, struct ord_list *ol)
+ int type, NMEM nmem, struct ord_list *ol,
+ int reg_type)
{
TERMID t;
else
t->flags = nmem_strdup(nmem, flags);
t->type = type;
+ t->reg_type = reg_type;
t->rankpriv = 0;
t->rset = 0;
- t->ol = ol;
+ t->ol = ord_list_dup(nmem, ol);
return t;
}
if (rc > 0)
{
if (rfd->counted_items == 0 ||
- (rset->keycontrol->cmp)(buf, rfd->counted_buf) >= rset->scope)
+ (rset->keycontrol->cmp)(buf, rfd->counted_buf) > rset->scope)
{
memcpy(rfd->counted_buf, buf, rset->keycontrol->key_size);
rfd->counted_items++;