Allow command to send extended service package
[yaz-moved-to-github.git] / zoom / zoomsh.c
index 2983b43..20894e0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: zoomsh.c,v 1.20 2003-05-26 11:35:46 adam Exp $
+ * $Id: zoomsh.c,v 1.24 2003-11-25 23:19:59 adam Exp $
  *
  * ZOOM-C Shell
  */
@@ -21,6 +21,7 @@
 #include <yaz/log.h>
 #include <yaz/nmem.h>
 #include <yaz/zoom.h>
+#include <yaz/oid.h>
 
 #define MAX_CON 100
 
@@ -152,17 +153,24 @@ static void display_records (ZOOM_connection c,
        int pos = i + start;
         ZOOM_record rec = ZOOM_resultset_record (r, pos);
        const char *db = ZOOM_record_get (rec, "database", 0);
-       int len;
+       int len, opac_len;
        const char *render = ZOOM_record_get (rec, "render", &len);
+       const char *opac_render = ZOOM_record_get (rec, "opac", &opac_len);
        const char *syntax = ZOOM_record_get (rec, "syntax", 0);
        /* if rec is non-null, we got a record for display */
        if (rec)
        {
-           printf ("%d %s %s\n", pos+1, (db ? db : "unknown"), syntax);
+           char oidbuf[100];
+           (void) oid_name_to_dotstring(CLASS_RECSYN, syntax, oidbuf);
+           printf ("%d %s %s (%s)\n",
+                   pos+1, (db ? db : "unknown"), syntax, oidbuf);
            if (render)
                fwrite (render, 1, len, stdout);
            printf ("\n");
+           if (opac_render)
+               fwrite (opac_render, 1, opac_len, stdout);
        }
+           
     }
 }
 
@@ -212,15 +220,19 @@ static void cmd_ext (ZOOM_connection *c, ZOOM_resultset *r,
                      const char **args)
 {
     ZOOM_package p[MAX_CON];
+    char ext_type_str[10];
     
     int i;
+
+    if (next_token_copy (args, ext_type_str, sizeof(ext_type_str)) < 0)
+       return;
     
     for (i = 0; i<MAX_CON; i++)
     {
        if (c[i])
         {
             p[i] = ZOOM_connection_package (c[i], 0);
-            ZOOM_package_send(p[i], "itemorder");
+            ZOOM_package_send(p[i], ext_type_str);
         }
         else
             p[i] = 0;