ZEBRA_RES.
-/* $Id: extract.c,v 1.206 2006-03-30 09:52:15 adam Exp $
+/* $Id: extract.c,v 1.207 2006-04-05 02:11:44 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
ctrl->flagShowRecords = !zh->m_flag_rw;
}
-static int file_extract_record(ZebraHandle zh,
- SYSNO *sysno, const char *fname,
- int deleteFlag,
- struct file_read_info *fi,
- int force_update,
- RecType recType,
- void *recTypeClientData)
+static ZEBRA_RES file_extract_record(ZebraHandle zh,
+ SYSNO *sysno, const char *fname,
+ int deleteFlag,
+ struct file_read_info *fi,
+ int force_update,
+ RecType recType,
+ void *recTypeClientData)
{
RecordAttr *recordAttr;
int r;
{
if (zebraExplain_newDatabase (zh->reg->zei, zh->basenames[0],
zh->m_explain_database))
- return 0;
+ return ZEBRA_FAIL;
}
if (fi->fd != -1)
yaz_log_init_prefix2 (0);
if (r == RECCTRL_EXTRACT_EOF)
- return 0;
+ return ZEBRA_FAIL;
else if (r == RECCTRL_EXTRACT_ERROR_GENERIC)
{
/* error occured during extraction ... */
yaz_log (YLOG_WARN, "fail %s %s " PRINTF_OFF_T, zh->m_record_type,
fname, recordOffset);
}
- return 0;
+ return ZEBRA_FAIL;
}
else if (r == RECCTRL_EXTRACT_ERROR_NO_SUCH_FILTER)
{
PRINTF_OFF_T, zh->m_record_type,
fname, recordOffset);
}
- return 0;
+ return ZEBRA_FAIL;
}
if (extractCtrl.match_criteria[0])
matchStr = extractCtrl.match_criteria;
if (!matchStr)
{
yaz_log(YLOG_WARN, "Bad match criteria");
- return 0;
+ return ZEBRA_FAIL;
}
}
if (matchStr)
/* the extraction process returned no information - the record
is probably empty - unless flagShowRecords is in use */
if (!zh->m_flag_rw)
- return 1;
+ return ZEBRA_OK;
if (zh->records_processed < zh->m_file_verbose_limit)
yaz_log (YLOG_WARN, "empty %s %s " PRINTF_OFF_T, zh->m_record_type,
fname, recordOffset);
- return 1;
+ return ZEBRA_OK;
}
if (! *sysno)
yaz_log (YLOG_LOG, "delete %s %s " PRINTF_OFF_T, zh->m_record_type,
fname, recordOffset);
yaz_log (YLOG_WARN, "cannot delete record above (seems new)");
- return 1;
+ return ZEBRA_OK;
}
if (zh->records_processed < zh->m_file_verbose_limit)
yaz_log (YLOG_LOG, "add %s %s " PRINTF_OFF_T, zh->m_record_type,
}
rec_rm (&rec);
logRecord (zh);
- return 1;
+ return ZEBRA_OK;
}
else
{
/* commit this record */
rec_put (zh->reg->records, &rec);
logRecord (zh);
- return 1;
+ return ZEBRA_OK;
}
-int fileExtract (ZebraHandle zh, SYSNO *sysno, const char *fname,
- int deleteFlag)
+ZEBRA_RES zebra_extract_file(ZebraHandle zh, SYSNO *sysno, const char *fname,
+ int deleteFlag)
{
- int r, i, fd;
+ ZEBRA_RES r = ZEBRA_OK;
+ int i, fd;
char gprefix[128];
char ext[128];
char ext_res[128];
&recTypeClientData)))
{
yaz_log(YLOG_WARN, "No such record type: %s", zh->m_record_type);
- return 0;
+ return ZEBRA_FAIL;
}
switch(recType->version)
else
strcpy (full_rep, fname);
-
if ((fd = open (full_rep, O_BINARY|O_RDONLY)) == -1)
{
yaz_log (YLOG_WARN|YLOG_ERRNO, "open %s", full_rep);
zh->m_record_type = original_record_type;
- return 0;
+ return ZEBRA_FAIL;
}
}
fi = file_read_start (fd);
- do
+ while(1)
{
fi->file_moffset = fi->file_offset;
fi->file_more = 0; /* file_end not called (yet) */
fi->file_offset = fi->file_moffset;
lseek(fi->fd, fi->file_moffset, SEEK_SET);
}
+ if (r != ZEBRA_OK)
+ {
+ break;
+ }
+ if (sysno)
+ {
+ break;
+ }
}
- while (r && !sysno);
file_read_stop (fi);
if (fd != -1)
close (fd);
zebraExplain_lookup_ord(zh->reg->zei, ord, &index_type,
0/* db */, 0/* set */, 0/* use */,
- 0 /* string index */);
+ 0 /* string_index */);
assert(index_type);
zebra_term_untrans_iconv(zh, nmem, index_type,
&dst_term, str);
-/* $Id: index.h,v 1.157 2006-03-26 14:17:01 adam Exp $
+/* $Id: index.h,v 1.158 2006-04-05 02:11:44 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
void extract_token_add (RecWord *p);
int explain_extract (void *handle, Record rec, data1_node *n);
-int fileExtract (ZebraHandle zh, SYSNO *sysno, const char *fname,
- int deleteFlag);
+ZEBRA_RES zebra_extract_file(ZebraHandle zh, SYSNO *sysno, const char *fname,
+ int deleteFlag);
ZEBRA_RES zebra_begin_read (ZebraHandle zh);
ZEBRA_RES zebra_end_read (ZebraHandle zh);
-/* $Id: kinput.c,v 1.71 2006-03-30 09:52:15 adam Exp $
+/* $Id: kinput.c,v 1.72 2006-04-05 02:11:44 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
Res res;
};
-#if 1
+#if 0
static void pkey(const char *b, int mode)
{
key_logdump_txt(YLOG_LOG, b, mode ? "i" : "d");
#define PR_KEY_LOW 0
#define PR_KEY_TOP 0
-#if 1
+#if 0
/* for debugging only */
static void print_dict_item(ZebraHandle zh, const char *s)
{
-/* $Id: trav.c,v 1.49 2005-06-14 20:28:54 adam Exp $
+/* $Id: trav.c,v 1.50 2006-04-05 02:11:44 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
switch (e[i].kind)
{
case dirs_file:
- fileExtract (zh, NULL, rep, deleteFlag);
+ zebra_extract_file (zh, NULL, rep, deleteFlag);
break;
case dirs_dir:
repositoryExtractR (zh, deleteFlag, rep, level+1);
{
case dirs_file:
sprintf (tmppath, "%s%s", base, dst->path);
- fileExtract (zh, &dst->sysno, tmppath, 1);
+ zebra_extract_file (zh, &dst->sysno, tmppath, 1);
strcpy (tmppath, dst->path);
dst = dirs_read (di);
case dirs_file:
if (e_src[i_src].mtime > dst->mtime)
{
- if (fileExtract (zh, &dst->sysno, tmppath, 0))
+ if (zebra_extract_file (zh, &dst->sysno, tmppath, 0) == ZEBRA_OK)
{
dirs_add (di, src, dst->sysno, e_src[i_src].mtime);
}
switch (e_src[i_src].kind)
{
case dirs_file:
- if (fileExtract (zh, &sysno, tmppath, 0))
+ if (zebra_extract_file (zh, &sysno, tmppath, 0) == ZEBRA_OK)
dirs_add (di, src, sysno, e_src[i_src].mtime);
break;
case dirs_dir:
switch (dst->kind)
{
case dirs_file:
- fileExtract (zh, &dst->sysno, tmppath, 1);
+ zebra_extract_file (zh, &dst->sysno, tmppath, 1);
dirs_del (di, dst->path);
dst = dirs_read (di);
break;
if (e_dst)
{
if (sbuf.st_mtime > e_dst->mtime)
- if (fileExtract (zh, &e_dst->sysno, src, 0))
+ if (zebra_extract_file (zh, &e_dst->sysno, src, 0) == ZEBRA_OK)
dirs_add (di, src, e_dst->sysno, sbuf.st_mtime);
}
else
{
SYSNO sysno = 0;
- if (fileExtract (zh, &sysno, src, 0))
+ if (zebra_extract_file (zh, &sysno, src, 0) == ZEBRA_OK)
dirs_add (di, src, sysno, sbuf.st_mtime);
}
dirs_free (&di);
if (ret == -1)
yaz_log (YLOG_WARN|YLOG_ERRNO, "Cannot access path %s", src);
else if (S_ISREG(sbuf.st_mode))
- fileExtract (zh, NULL, src, deleteFlag);
+ zebra_extract_file (zh, NULL, src, deleteFlag);
else if (S_ISDIR(sbuf.st_mode))
repositoryExtractR (zh, deleteFlag, src, 0);
else