* Sebastian Hammer, Adam Dickmeiss
*
* $Log: dirs.c,v $
- * Revision 1.3 1995-11-20 16:59:45 adam
+ * Revision 1.4 1995-11-30 08:34:27 adam
+ * Started work on commit facility.
+ * Changed a few malloc/free to xmalloc/xfree.
+ *
+ * Revision 1.3 1995/11/20 16:59:45 adam
* New update method: the 'old' keys are saved for each records.
*
* Revision 1.2 1995/11/20 11:56:23 adam
int before = 0, after;
logf (LOG_DEBUG, "dirs_open %s", rep);
- if (!(p = malloc (sizeof (*p))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p = xmalloc (sizeof (*p));
p->dict = dict;
strcpy (p->prefix, rep);
p->prelen = strlen(p->prefix);
strcpy (p->nextpath, rep);
p->no_read = p->no_cur = 0;
after = p->no_max = 400;
- if (!(p->entries = malloc (sizeof(*p->entries) * (p->no_max))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->entries = xmalloc (sizeof(*p->entries) * (p->no_max));
logf (LOG_DEBUG, "dirs_open first scan");
dict_scan (p->dict, p->nextpath, &before, &after, p, dirs_client_proc);
return p;
{
struct dirs_info *p = *pp;
- free (p->entries);
- free (p);
+ xfree (p->entries);
+ xfree (p);
*pp = NULL;
}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: extract.c,v $
- * Revision 1.35 1995-11-28 14:26:21 adam
+ * Revision 1.36 1995-11-30 08:34:29 adam
+ * Started work on commit facility.
+ * Changed a few malloc/free to xmalloc/xfree.
+ *
+ * Revision 1.35 1995/11/28 14:26:21 adam
* Bug fix: recordId with constant wasn't right.
* Bug fix: recordId dictionary entry wasn't deleted when needed.
*
{
char *b;
- b = malloc (reckeys.buf_max += 65000);
+ b = xmalloc (reckeys.buf_max += 65000);
if (reckeys.buf_used > 0)
memcpy (b, reckeys.buf, reckeys.buf_used);
- free (reckeys.buf);
+ xfree (reckeys.buf);
reckeys.buf = b;
}
dst = reckeys.buf + reckeys.buf_used;
}
}
}
- free (rec->info[recInfo_fileType]);
+ xfree (rec->info[recInfo_fileType]);
rec->info[recInfo_fileType] =
rec_strdup (rGroup->recordType, &rec->size[recInfo_fileType]);
- free (rec->info[recInfo_filename]);
+ xfree (rec->info[recInfo_filename]);
rec->info[recInfo_filename] =
rec_strdup (fname, &rec->size[recInfo_filename]);
- free (rec->info[recInfo_delKeys]);
+ xfree (rec->info[recInfo_delKeys]);
if (reckeys.buf_used > 0 && rGroup->flagStoreKeys == 1)
{
- rec->info[recInfo_delKeys] = malloc (reckeys.buf_used);
+ rec->info[recInfo_delKeys] = xmalloc (reckeys.buf_used);
rec->size[recInfo_delKeys] = reckeys.buf_used;
memcpy (rec->info[recInfo_delKeys], reckeys.buf,
rec->size[recInfo_delKeys]);
rec->size[recInfo_delKeys] = 0;
}
- free (rec->info[recInfo_storeData]);
+ xfree (rec->info[recInfo_storeData]);
if (rGroup->flagStoreData == 1)
{
rec->size[recInfo_storeData] = file_noread;
- rec->info[recInfo_storeData] = malloc (file_noread);
+ rec->info[recInfo_storeData] = xmalloc (file_noread);
if (file_noread < FILE_READ_BUFSIZE)
memcpy (rec->info[recInfo_storeData], file_buf, file_noread);
else
rec->info[recInfo_storeData] = NULL;
rec->size[recInfo_storeData] = 0;
}
- free (rec->info[recInfo_databaseName]);
+ xfree (rec->info[recInfo_databaseName]);
rec->info[recInfo_databaseName] =
rec_strdup (rGroup->databaseName, &rec->size[recInfo_databaseName]);
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: main.c,v $
- * Revision 1.22 1995-11-28 09:09:42 adam
+ * Revision 1.23 1995-11-30 08:34:31 adam
+ * Started work on commit facility.
+ * Changed a few malloc/free to xmalloc/xfree.
+ *
+ * Revision 1.22 1995/11/28 09:09:42 adam
* Zebra config renamed.
* Use setting 'recordId' to identify record now.
* Bug fix in recindex.c: rec_release_blocks was invokeded even
prog = *argv;
if (argc < 2)
{
- fprintf (stderr, "index [-v log] [-m meg] [-c config] [-d base]"
- " [-g group] [update|del dir] ...\n");
+ fprintf (stderr, "zebraidx [options] command <dir> ...\n"
+ "Commands:\n"
+ " update <dir> Update index with files below <dir>.\n"
+ " If <dir> is empty filenames are read from stdin.\n"
+ " delete <dir> Delete index with files below <dir>.\n"
+ "Options:\n"
+ " -t <type> Index files as <type> (grs or text).\n"
+ " -c <config> Read configuration file <config>.\n"
+ " -g <group> Index files according to group settings.\n"
+ " -d <database> Records belong to Z39.50 database <database>.\n"
+ " -m <mbytes> Use <mbytes> before flushing keys to disk.\n"
+ " -v <level> Set logging to <level>.\n");
exit (1);
}
- while ((ret = options ("t:c:g:v:m:d:", argv, argc, &arg)) != -2)
+ while ((ret = options ("t:c:g:d:m:v:l:", argv, argc, &arg)) != -2)
{
if (ret == 0)
{
configName = arg;
else if (ret == 't')
rGroupDef.recordType = arg;
+ else if (ret == 'l')
+ bf_cache (arg);
else
{
logf (LOG_FATAL, "Unknown option '-%s'", arg);
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: recindex.c,v $
- * Revision 1.8 1995-11-28 14:26:21 adam
+ * Revision 1.9 1995-11-30 08:34:33 adam
+ * Started work on commit facility.
+ * Changed a few malloc/free to xmalloc/xfree.
+ *
+ * Revision 1.8 1995/11/28 14:26:21 adam
* Bug fix: recordId with constant wasn't right.
* Bug fix: recordId dictionary entry wasn't deleted when needed.
*
if (p->tmp_size < size + 256 ||
p->tmp_size < p->head.block_size[dst_type]*2)
{
- free (p->tmp_buf);
- p->tmp_size = size + p->head.block_size[dst_type]*2 +
- 256;
- if (!(p->tmp_buf = malloc (p->tmp_size)))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ xfree (p->tmp_buf);
+ p->tmp_size = size + p->head.block_size[dst_type]*2 + 256;
+ p->tmp_buf = xmalloc (p->tmp_size);
}
}
Records p;
int i, r;
- if (!(p = malloc (sizeof(*p))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p = xmalloc (sizeof(*p));
p->rw = rw;
p->tmp_size = 1024;
- p->tmp_buf = malloc (p->tmp_size);
- if (!p->tmp_buf)
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->tmp_buf = xmalloc (p->tmp_size);
p->index_fname = "recindex";
p->index_BFile = bf_open (p->index_fname, 128, rw);
if (p->index_BFile == NULL)
{
char str[80];
sprintf (str, "recdata%c", i + 'A');
- p->data_fname[i] = malloc (strlen(str)+1);
+ p->data_fname[i] = xmalloc (strlen(str)+1);
strcpy (p->data_fname[i], str);
p->data_BFile[i] = NULL;
}
}
p->cache_max = 10;
p->cache_cur = 0;
- if (!(p->record_cache = malloc (sizeof(*p->record_cache)*p->cache_max)))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->record_cache = xmalloc (sizeof(*p->record_cache)*p->cache_max);
return p;
}
assert (p);
rec_cache_flush (p);
- free (p->record_cache);
+ xfree (p->record_cache);
if (p->rw)
rec_write_head (p);
{
if (p->data_BFile[i])
bf_close (p->data_BFile[i]);
- free (p->data_fname[i]);
+ xfree (p->data_fname[i]);
}
- free (p->tmp_buf);
- free (p);
+ xfree (p->tmp_buf);
+ xfree (p);
*pp = NULL;
}
assert (freeblock > 0);
- if (!(rec = malloc (sizeof(*rec))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ rec = xmalloc (sizeof(*rec));
rec_tmp_expand (p, entry.u.used.size, dst_type);
cptr = p->tmp_buf;
nptr += sizeof(*rec->size);
if (rec->size[i])
{
- rec->info[i] = malloc (rec->size[i]);
+ rec->info[i] = xmalloc (rec->size[i]);
memcpy (rec->info[i], nptr, rec->size[i]);
nptr += rec->size[i];
}
Record rec;
assert (p);
- if (!(rec = malloc (sizeof(*rec))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ rec = xmalloc (sizeof(*rec));
if (p->head.index_free == 0)
sysno = (p->head.index_last)++;
else
{
int i;
for (i = 0; i < REC_NO_INFO; i++)
- free ((*recpp)->info[i]);
- free (*recpp);
+ xfree ((*recpp)->info[i]);
+ xfree (*recpp);
*recpp = NULL;
}
Record n;
int i;
- if (!(n = malloc (sizeof(*n))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ n = xmalloc (sizeof(*n));
n->sysno = rec->sysno;
for (i = 0; i < REC_NO_INFO; i++)
if (!rec->info[i])
else
{
n->size[i] = rec->size[i];
- if (!(n->info[i] = malloc (rec->size[i])))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc. rec_cp");
- exit (1);
- }
+ n->info[i] = xmalloc (rec->size[i]);
memcpy (n->info[i], rec->info[i], rec->size[i]);
}
return n;
Records p;
int r;
- if (!(p = malloc (sizeof(*p))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p = xmalloc (sizeof(*p));
p->rw = rw;
p->tmp_buf = NULL;
p->tmp_size = 0;
}
p->cache_max = 10;
p->cache_cur = 0;
- if (!(p->record_cache = malloc (sizeof(*p->record_cache)*p->cache_max)))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->record_cache = xmalloc (sizeof(*p->record_cache)*p->cache_max));
return p;
}
}
if (p->tmp_size < entry.u.used.size)
{
- free (p->tmp_buf);
+ xfree (p->tmp_buf);
p->tmp_size = entry.u.used.size + 16384;
- if (!(p->tmp_buf = malloc (p->tmp_size)))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->tmp_buf = xmalloc (p->tmp_size));
}
cptr = p->tmp_buf;
for (i = 0; i < REC_NO_INFO; i++)
assert (*p);
rec_cache_flush (*p);
- free ((*p)->record_cache);
+ xfree ((*p)->record_cache);
if ((*p)->rw)
rec_write_head (*p);
if ((*p)->data_fd != -1)
close ((*p)->data_fd);
- free ((*p)->tmp_buf);
+ xfree ((*p)->tmp_buf);
- free (*p);
+ xfree (*p);
*p = NULL;
}
read_indx (p, sysno, &entry, sizeof(entry));
- if (!(rec = malloc (sizeof(*rec))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ rec = xmalloc (sizeof(*rec));
if (lseek (p->data_fd, entry.u.used.offset, SEEK_SET) == -1)
{
logf (LOG_FATAL|LOG_ERRNO, "lseek in %s to pos %ld",
}
if (p->tmp_size < entry.u.used.size)
{
- free (p->tmp_buf);
+ xfree (p->tmp_buf);
p->tmp_size = entry.u.used.size + 16384;
- if (!(p->tmp_buf = malloc (p->tmp_size)))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p->tmp_buf = xmalloc (p->tmp_size));
}
for (got = 0; got < entry.u.used.size; got += r)
{
nptr += sizeof(*rec->size);
if (rec->size[i])
{
- rec->info[i] = malloc (rec->size[i]);
+ rec->info[i] = xmalloc (rec->size[i]);
memcpy (rec->info[i], nptr, rec->size[i]);
nptr += rec->size[i];
}
Record rec;
assert (p);
- if (!(rec = malloc (sizeof(*rec))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ rec = xmalloc (sizeof(*rec));
if (p->head.index_free == 0)
sysno = (p->head.index_last)++;
else
{
int i;
for (i = 0; i < REC_NO_INFO; i++)
- free ((*recpp)->info[i]);
- free (*recpp);
+ xfree ((*recpp)->info[i]);
+ xfree (*recpp);
*recpp = NULL;
}
Record n;
int i;
- if (!(n = malloc (sizeof(*n))))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ n = xmalloc (sizeof(*n));
n->sysno = rec->sysno;
for (i = 0; i < REC_NO_INFO; i++)
if (!rec->info[i])
else
{
n->size[i] = rec->size[i];
- if (!(n->info[i] = malloc (rec->size[i])))
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc. rec_cp");
- exit (1);
- }
+ n->info[i] = xmalloc (rec->size[i]);
memcpy (n->info[i], rec->info[i], rec->size[i]);
}
return n;
return NULL;
}
*len = strlen(s)+1;
- p = malloc (*len);
- if (!p)
- {
- logf (LOG_FATAL|LOG_ERRNO, "malloc");
- exit (1);
- }
+ p = xmalloc (*len);
strcpy (p, s);
return p;
}