Uses preprocessor define WIN32 instead of WINDOWS to build code
[yaz-moved-to-github.git] / client / client.c
index fdf7830..cf0de26 100644 (file)
@@ -1,10 +1,25 @@
 /*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
- * Revision 1.70  1998-09-22 09:40:37  adam
+ * Revision 1.75  1999-02-01 15:37:32  adam
+ * Fixed minor bug introduced by previous commit.
+ *
+ * Revision 1.74  1999/02/01 15:35:21  adam
+ * Added XML display.
+ *
+ * Revision 1.73  1998/10/20 13:55:43  quinn
+ * Fixed Scan bug in asn and client
+ *
+ * Revision 1.72  1998/10/20 13:23:15  quinn
+ * changed preferred pos to 1
+ *
+ * Revision 1.71  1998/10/20 13:21:43  adam
+ * Fixed scan response handler.
+ *
+ * Revision 1.70  1998/09/22 09:40:37  adam
  * Minor changes in sort spec.
  *
  * Revision 1.69  1998/08/19 16:10:06  adam
@@ -650,10 +665,16 @@ static void display_record(Z_DatabaseRecord *p)
         printf("%.*s", r->u.octet_aligned->len, r->u.octet_aligned->buf);
     else if (r->which == Z_External_octet && p->u.octet_aligned->len)
     {
-        const char *marc_buf = (char*)p->u.octet_aligned->buf;
-        marc_display (marc_buf, NULL);
+        const char *octet_buf = (char*)p->u.octet_aligned->buf;
+       if (ent->value == VAL_TEXT_XML || ent->value == VAL_APPLICATION_XML)
+       {
+           fwrite (octet_buf, 1, p->u.octet_aligned->len, stdout);
+           printf ("\n");
+        }
+       else
+            marc_display (octet_buf, NULL);
         if (marcdump)
-            fwrite (marc_buf, strlen (marc_buf), 1, marcdump);
+            fwrite (octet_buf, 1, p->u.octet_aligned->len, marcdump);
     }
     else if (ent && ent->value == VAL_SUTRS)
     {
@@ -1166,7 +1187,7 @@ static int cmd_itemorder(char *arg)
     fflush(stdout);
 
     send_itemorder(arg);
-    return(1);
+    return(2);
 }
 
 static int cmd_find(char *arg)
@@ -1573,33 +1594,22 @@ void process_scanResponse(Z_ScanResponse *res)
         printf("Scan returned code %d\n", *res->scanStatus);
     if (!res->entries)
         return;
-#ifdef ASN_COMPILED
     if ((entries = res->entries->entries))
        num_entries = res->entries->num_entries;
-#else
-    if (res->entries->which == Z_ListEntries_entries)
-    {
-        entries = res->entries->u.entries->entries;
-       num_entries = res->entries->u.entries->num_entries;
-    }
-#endif
     for (i = 0; i < num_entries; i++)
+    {
+        int pos_term = res->positionOfTerm ? *res->positionOfTerm : -1;
        if (entries[i]->which == Z_Entry_termInfo)
        {
-           printf("%c ", i + 1 == *res->positionOfTerm ? '*' : ' ');
+           printf("%c ", i + 1 == pos_term ? '*' : ' ');
            display_term(entries[i]->u.termInfo);
        }
        else
            display_diagrecs(&entries[i]->u.surrogateDiagnostic, 1);
-#ifdef ASN_COMPILED
+    }
     if (res->entries->nonsurrogateDiagnostics)
        display_diagrecs (res->entries->nonsurrogateDiagnostics,
                          res->entries->num_nonsurrogateDiagnostics);
-#else
-    if (res->entries->which == Z_ListEntries_nonSurrogateDiagnostics)
-        display_diagrecs(&res->entries->
-                        u.nonSurrogateDiagnostics->diagRecs[0], 1);
-#endif
 }
 
 void process_sortResponse(Z_SortResponse *res)
@@ -1674,7 +1684,7 @@ int cmd_scan(char *arg)
     }
     if (*arg)
     {
-        if (send_scanrequest(arg, 5, 20) < 0)
+        if (send_scanrequest(arg, 1, 20) < 0)
             return 0;
     }
     else