Allow Hook function to be tested (log_event_start)
[yaz-moved-to-github.git] / client / client.c
index cf8dfed..b478ce2 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: client.c,v 1.298 2005-09-26 09:15:27 adam Exp $
+ * $Id: client.c,v 1.302 2005-12-20 23:07:27 adam Exp $
  */
 
 #include <stdio.h>
@@ -1530,7 +1530,7 @@ static int send_searchRequest(const char *arg)
     if (smallSetUpperBound > 0 || (largeSetLowerBound > 1 &&
         mediumSetPresentNumber > 0))
     {
-        if (recordsyntax_list > 0)
+        if (recordsyntax_size > 0)
             req->preferredRecordSyntax =
                 yaz_oidval_to_z3950oid(out, CLASS_RECSYN, recordsyntax_list[0]);
         req->smallSetElementSetNames =
@@ -1599,10 +1599,11 @@ static int send_searchRequest(const char *arg)
 }
 
 /* display Query Expression as part of searchResult-1 */
-static void display_queryExpression (Z_QueryExpression *qe)
+static void display_queryExpression (const char *lead, Z_QueryExpression *qe)
 {
     if (!qe)
         return;
+    printf(" %s=", lead);
     if (qe->which == Z_QueryExpression_term)
     {
         if (qe->u.term->queryTerm)
@@ -1611,16 +1612,16 @@ static void display_queryExpression (Z_QueryExpression *qe)
             switch (term->which)
             {
             case Z_Term_general:
-                printf (" %.*s", term->u.general->len, term->u.general->buf);
+                printf ("%.*s", term->u.general->len, term->u.general->buf);
                 break;
             case Z_Term_characterString:
-                printf (" %s", term->u.characterString);
+                printf ("%s", term->u.characterString);
                 break;
             case Z_Term_numeric:
-                printf (" %d", *term->u.numeric);
+                printf ("%d", *term->u.numeric);
                 break;
             case Z_Term_null:
-                printf (" null");
+                printf ("null");
                 break;
             }
         }
@@ -1646,16 +1647,20 @@ static void display_searchResult (Z_OtherInformation *o)
                 printf ("SearchResult-1:");
                 for (j = 0; j < sr->num; j++)
                 {
+                    if (j)
+                        printf(",");
                     if (!sr->elements[j]->subqueryExpression)
-                        printf (" %d", j);
-                    display_queryExpression (
+                        printf("%d", j);
+                    display_queryExpression("term",
                         sr->elements[j]->subqueryExpression);
-                    display_queryExpression (
+                    display_queryExpression("interpretation",
                         sr->elements[j]->subqueryInterpretation);
-                    display_queryExpression (
+                    display_queryExpression("recommendation",
                         sr->elements[j]->subqueryRecommendation);
                     if (sr->elements[j]->subqueryCount)
-                        printf ("(%d)", *sr->elements[j]->subqueryCount);
+                        printf(" cnt=%d", *sr->elements[j]->subqueryCount);
+                    if (sr->elements[j]->subqueryId)
+                        printf(" id=%s ", sr->elements[j]->subqueryId);
                 }
                 printf ("\n");
             }
@@ -3245,8 +3250,8 @@ int cmd_packagename(const char* arg)
 
 int cmd_proxy(const char* arg)
 {
-    xfree (yazProxy);
-    yazProxy = NULL;
+    xfree(yazProxy);
+    yazProxy = 0;
     if (*arg)
         yazProxy = xstrdup (arg);
     return 1;
@@ -4088,6 +4093,7 @@ int cmd_set_otherinfo(const char* args)
         extraOtherInfos[otherinfoNo].oidval = -1;
         if (extraOtherInfos[otherinfoNo].value)
             free(extraOtherInfos[otherinfoNo].value);                   
+        extraOtherInfos[otherinfoNo].value = 0;
         return 0;
     }
     if (sscan_res<3) {
@@ -4290,7 +4296,6 @@ static struct {
 } cmd_array[] = {
     {"open", cmd_open, "('tcp'|'ssl')':<host>[':'<port>][/<db>]",NULL,0,NULL},
     {"quit", cmd_quit, "",NULL,0,NULL},
-    {"exit", cmd_quit, "",NULL,0,NULL},
     {"find", cmd_find, "<query>",NULL,0,NULL},
     {"delete", cmd_delete, "<setname>",NULL,0,NULL},
     {"base", cmd_base, "<base-name>",NULL,0,NULL},
@@ -4361,6 +4366,7 @@ static struct {
     {"zversion", cmd_zversion, "", NULL, 0, NULL},
     {"help", cmd_help, "", NULL,0,NULL},
     {"init", cmd_init, "", NULL,0,NULL},
+    {"exit", cmd_quit, "",NULL,0,NULL},
     {0,0,0,0,0,0}
 };
 
@@ -4744,7 +4750,7 @@ int main(int argc, char **argv)
             hex_dump = 1;
             break;
         case 'p':
-            yazProxy=strdup(arg);
+            yazProxy = xstrdup(arg);
             break;
         case 'u':
             if (!auth_command)