Fix leak for rset_key_control
[idzebra-moved-to-github.git] / index / retrieve.c
index 8dbe8a5..d60a989 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: retrieve.c,v 1.31 2005-06-07 11:36:38 adam Exp $
+/* $Id: retrieve.c,v 1.36 2005-10-28 07:25:30 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -27,7 +27,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #ifdef WIN32
 #include <io.h>
 #include <process.h>
-#else
+#endif
+#if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
@@ -218,26 +219,40 @@ int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score,
     if (1)
     {
        /* snippets code */
-       struct recKeys reckeys;
        zebra_snippets *snippet;
+
+#if NEW_REC_KEYS
+       zebra_rec_keys_t reckeys = zebra_rec_keys_open();
+       
+       zebra_rec_keys_set_buf(reckeys,
+                              rec->info[recInfo_delKeys],
+                              rec->size[recInfo_delKeys], 
+                              0);
+       zebra_snippets_rec_keys(zh, reckeys, retrieveCtrl.doc_snippet);
+       zebra_rec_keys_close(reckeys);
+#else
+       struct recKeys reckeys;
        reckeys.buf = rec->info[recInfo_delKeys];
        reckeys.buf_used = rec->size[recInfo_delKeys];
-
        zebra_snippets_rec_keys(zh, &reckeys, retrieveCtrl.doc_snippet);
+#endif
 
 
+#if 0
+       /* for debugging purposes */
        yaz_log(YLOG_LOG, "DOC SNIPPET:");
        zebra_snippets_log(retrieveCtrl.doc_snippet, YLOG_LOG);
        yaz_log(YLOG_LOG, "HIT SNIPPET:");
        zebra_snippets_log(retrieveCtrl.hit_snippet, YLOG_LOG);
-
+#endif
        snippet = zebra_snippets_window(retrieveCtrl.doc_snippet,
                                        retrieveCtrl.hit_snippet,
                                        10);
-       
+#if 0
+       /* for debugging purposes */
        yaz_log(YLOG_LOG, "WINDOW SNIPPET:");
        zebra_snippets_log(snippet, YLOG_LOG);
-
+#endif
        (*rt->retrieve)(clientData, &retrieveCtrl);
 
        zebra_snippets_destroy(snippet);