X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fextract.c;h=ea31d07d2208e3db4e217fa1badfc378709506dc;hb=9af45a7f129664e5f802ff1cdfce08fbce8b1adb;hp=92454ed62ef319fdfe69ec81af999c4e9ec66ff0;hpb=cf2735a03e26ba9a2a3aa18c15a720a5ff0bdf72;p=idzebra-moved-to-github.git diff --git a/index/extract.c b/index/extract.c index 92454ed..ea31d07 100644 --- a/index/extract.c +++ b/index/extract.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: extract.c,v $ - * Revision 1.17 1995-10-03 14:28:57 adam + * Revision 1.20 1995-10-06 13:52:05 adam + * Bug fixes. Handler may abort further scanning. + * + * Revision 1.19 1995/10/04 12:55:16 adam + * Bug fix in ranked search. Use=Any keys inserted. + * + * Revision 1.18 1995/10/04 09:37:08 quinn + * Fixed bug. + * + * Revision 1.17 1995/10/03 14:28:57 adam * Buffered read in extract works. * * Revision 1.16 1995/10/03 14:28:45 adam @@ -216,6 +225,21 @@ static void wordAdd (const RecWord *p) kused += sizeof(key); } +static void wordAddAny (const RecWord *p) +{ + if (p->attrSet != 1 || p->attrUse != 1016) + { + RecWord w; + + memcpy (&w, p, sizeof(w)); + w.attrSet = 1; + w.attrUse = 1016; + wordAdd (&w); + } + wordAdd (p); +} + + #define FILE_READ_BUF 1 #if FILE_READ_BUF static char *file_buf; @@ -331,17 +355,17 @@ void file_extract (int cmd, const char *fname, const char *kname) } extractCtrl.subType = ""; extractCtrl.init = wordInit; - extractCtrl.add = wordAdd; + extractCtrl.add = wordAddAny; #if FILE_READ_BUF file_read_start (extractCtrl.fd); #endif extractCtrl.readf = file_read; -#if FILE_READ_BUF - file_read_stop (extractCtrl.fd); -#endif key_sysno = sysno; key_cmd = cmd; r = (*rt->extract)(&extractCtrl); +#if FILE_READ_BUF + file_read_stop (extractCtrl.fd); +#endif close (extractCtrl.fd); if (r) logf (LOG_WARN, "Couldn't extract file %s, code %d", fname, r);