-/* $Id: kinput.c,v 1.84 2007-10-29 09:25:40 adam Exp $
- Copyright (C) 1995-2007
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1995-2008 Index Data
Zebra 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
#define KEY_SIZE (1+sizeof(struct it_key))
#define INP_NAME_MAX 768
-#define INP_BUF_START 60000
-#define INP_BUF_ADD 400000
struct key_file {
int no; /* file no */
{
i = 0;
key[i++] = c;
- while ((key[i++] = key_file_getc(f)))
- ;
+ while ((c = key_file_getc(f)))
+ {
+ if (i < IT_MAX_WORD)
+ key[i++] = c;
+ }
+ key[i++] = '\0';
strcpy(f->prev_name, key);
iscz1_reset(f->decode_handle);
}
int (*cmp)(const void *p1, const void *p2);
struct zebra_register *reg;
ZebraHandle zh;
- int raw_reading; /* 1=raw /mem read. 0=file reading */
zint no_diffs;
zint no_updates;
zint no_deletions;
hi->info.buf = 0;
hi->heapnum = 0;
hi->ptr = 0;
- hi->raw_reading = 0;
hi->no_diffs = 0;
hi->no_diffs = 0;
hi->no_updates = 0;
return hi;
}
-struct heap_info *key_heap_init_raw(ZebraHandle zh,
- int (*cmp)(const void *p1, const void *p2))
-{
- struct heap_info *hi=key_heap_malloc();
- hi->cmp = cmp;
- hi->zh = zh;
- hi->raw_reading = 1;
- return hi;
-}
-
void key_heap_destroy(struct heap_info *hi, int nkeys)
{
int i;
- if (!hi->raw_reading)
- for (i = 0; i<=nkeys; i++)
- xfree(hi->info.buf[i]);
-
+ for (i = 0; i<=nkeys; i++)
+ xfree(hi->info.buf[i]);
xfree(hi->info.buf);
xfree(hi->ptr);
xfree(hi->info.file);
char dst[IT_MAX_WORD+1];
int ord;
int len = key_SU_decode(&ord, (const unsigned char *) s);
- int index_type;
+ const char *index_type;
if (!zh)
yaz_log(YLOG_LOG, "ord=%d", ord);
zebra_term_untrans(zh, index_type, dst, s + len);
- yaz_log(YLOG_LOG, "ord=%d index_type=%c index=%s term=%s",
+ yaz_log(YLOG_LOG, "ord=%d index_type=%s index=%s term=%s",
ord, index_type, string_index, dst);
}
}
return 0;
}
-int heap_inp0(struct heap_cread_info *hci, struct heap_info *hi)
-{
- while (hci->more)
- {
- char this_name[INP_NAME_MAX];
- char mybuf[1024];
- char *dst = mybuf;
- int mode;
-
- strcpy(this_name, hci->cur_name);
- assert(hci->cur_name[0]);
- hi->no_diffs++;
-
- while (heap_cread_item2(hci, &dst, &mode))
- ;
- }
- return 0;
-}
-
-
int heap_inpb(struct heap_cread_info *hci, struct heap_info *hi)
{
ISAMC_I *isamc_i = (ISAMC_I *) xmalloc(sizeof(*isamc_i));