Updates for YAZ3 XML entities
[yaz-moved-to-github.git] / src / zoom-c.c
index 10cf790..ecd2933 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2007, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: zoom-c.c,v 1.118 2007-03-19 20:58:34 adam Exp $
+ * $Id: zoom-c.c,v 1.116.2.1 2007-06-26 09:23:30 adam Exp $
  */
 /**
  * \file zoom-c.c
@@ -27,6 +27,8 @@
 #include <yaz/cql.h>
 #include <yaz/ccl.h>
 
+#define TASK_FIX 1
+
 static int log_api = 0;
 static int log_details = 0;
 
@@ -166,7 +168,9 @@ static void set_dset_error(ZOOM_connection c, int error,
                 c, c->host_port ? c->host_port : "<>", dset, error,
                 addinfo ? addinfo : "",
                 addinfo2 ? addinfo2 : "");
+#if TASK_FIX
         ZOOM_connection_remove_tasks(c);
+#endif
     }
 }
 
@@ -674,7 +678,7 @@ ZOOM_API(int)
         WRBUF wr = wrbuf_alloc();
         ccl_pquery(wr, rpn);
         ccl_rpn_delete(rpn);
-        ret = ZOOM_query_prefix(s, wrbuf_cstr(wr));
+        ret = ZOOM_query_prefix(s, wrbuf_buf(wr));
         wrbuf_destroy(wr);
     }
     ccl_qual_rm(&bibset);
@@ -853,10 +857,22 @@ ZOOM_API(ZOOM_resultset)
     return r;
 }
 
-ZOOM_API(int)
+/*
+ * This is the old result-set sorting API, which is maintained only
+ * for the sake of binary compatibility.  There is no reason ever to
+ * use this rather than ZOOM_resultset_sort1().
+ */
+ZOOM_API(void)
     ZOOM_resultset_sort(ZOOM_resultset r,
                         const char *sort_type, const char *sort_spec)
 {
+    (void) ZOOM_resultset_sort1(r, sort_type, sort_spec);
+}
+
+ZOOM_API(int)
+    ZOOM_resultset_sort1(ZOOM_resultset r,
+                         const char *sort_type, const char *sort_spec)
+{
     ZOOM_connection c = r->connection;
     ZOOM_task task;
     ZOOM_query newq;
@@ -1284,7 +1300,7 @@ static zoom_ret ZOOM_connection_send_init(ZOOM_connection c)
                     odr_prepend(c->odr_out, "ZOOM-C",
                                 ireq->implementationName));
     
-    version = odr_strdup(c->odr_out, "$Revision: 1.118 $");
+    version = odr_strdup(c->odr_out, "$Revision: 1.116.2.1 $");
     if (strlen(version) > 10)   /* check for unexpanded CVS strings */
         version[strlen(version)-2] = '\0';
     ireq->implementationVersion = 
@@ -1771,7 +1787,7 @@ static const char *marc_iconv_return(ZOOM_record rec, int marc_type,
             yaz_iconv_close(cd);
         if (len)
             *len = wrbuf_len(rec->wrbuf_marc);
-        return wrbuf_cstr(rec->wrbuf_marc);
+        return wrbuf_buf(rec->wrbuf_marc);
     }
     yaz_marc_destroy(mt);
     if (cd)
@@ -1834,7 +1850,8 @@ static const char *record_iconv_return(ZOOM_record rec, int *len,
             }
             wrbuf_write(rec->wrbuf_iconv, outbuf, outp - outbuf);
         }
-        buf = wrbuf_cstr(rec->wrbuf_iconv);
+        wrbuf_puts(rec->wrbuf_iconv, "");
+        buf = wrbuf_buf(rec->wrbuf_iconv);
         sz = wrbuf_len(rec->wrbuf_iconv);
         yaz_iconv_close(cd);
     }
@@ -2643,21 +2660,21 @@ static zoom_ret send_present(ZOOM_connection c)
 }
 
 ZOOM_API(ZOOM_scanset)
-    ZOOM_connection_scan_pqf(ZOOM_connection c, const char *start)
+    ZOOM_connection_scan(ZOOM_connection c, const char *start)
 {
     ZOOM_scanset s;
     ZOOM_query q = ZOOM_query_create();
 
     ZOOM_query_prefix(q, start);
 
-    s = ZOOM_connection_scan(c, q);
+    s = ZOOM_connection_scan1(c, q);
     ZOOM_query_destroy(q);
     return s;
 
 }
 
 ZOOM_API(ZOOM_scanset)
-    ZOOM_connection_scan(ZOOM_connection c, ZOOM_query q)
+    ZOOM_connection_scan1(ZOOM_connection c, ZOOM_query q)
 {
     char *start;
     char *freeme = 0;
@@ -2857,12 +2874,11 @@ ZOOM_API(const char *)
     return ZOOM_options_get(scan->options, key);
 }
 
-ZOOM_API(int)
+ZOOM_API(void)
     ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
                             const char *val)
 {
     ZOOM_options_set(scan->options, key, val);
-    return 0;
 }
 
 static Z_APDU *create_es_package(ZOOM_package p, int type)
@@ -3314,12 +3330,11 @@ ZOOM_API(const char *)
 }
 
 
-ZOOM_API(int)
+ZOOM_API(void)
     ZOOM_package_option_set(ZOOM_package p, const char *key,
                             const char *val)
 {
     ZOOM_options_set(p->options, key, val);
-    return 0;
 }
 
 static int ZOOM_connection_exec_task(ZOOM_connection c)
@@ -3883,20 +3898,18 @@ ZOOM_API(const char *)
     return ZOOM_options_getl(c->options, key, lenp);
 }
 
-ZOOM_API(int)
+ZOOM_API(void)
     ZOOM_connection_option_set(ZOOM_connection c, const char *key,
                                const char *val)
 {
     ZOOM_options_set(c->options, key, val);
-    return 0;
 }
 
-ZOOM_API(int)
+ZOOM_API(void)
     ZOOM_connection_option_setl(ZOOM_connection c, const char *key,
                                 const char *val, int len)
 {
     ZOOM_options_setl(c->options, key, val, len);
-    return 0;
 }
 
 ZOOM_API(const char *)
@@ -3905,12 +3918,11 @@ ZOOM_API(const char *)
     return ZOOM_options_get(r->options, key);
 }
 
-ZOOM_API(int)
+ZOOM_API(void)
     ZOOM_resultset_option_set(ZOOM_resultset r, const char *key,
                               const char *val)
 {
     ZOOM_options_set(r->options, key, val);
-    return 0;
 }
 
 
@@ -4045,6 +4057,8 @@ static void ZOOM_connection_do_io(ZOOM_connection c, int mask)
             if (c->cs->io_pending & CS_WANT_READ)
                 mask += ZOOM_SELECT_READ;
             ZOOM_connection_set_mask(c, mask);
+            event = ZOOM_Event_create(ZOOM_EVENT_NONE);
+            ZOOM_connection_put_event(c, event);
         }
         else if (ret == 0)
         {