#include <string.h>
#include <yaz/wrbuf.h>
#include <yaz/log.h>
+#include <yaz/backtrace.h>
#include <yaz/options.h>
#if HAVE_READLINE_READLINE_H
return 0;
}
+static void display_search_result(struct zoom_db *db)
+{
+ const char *v;
+ int num;
+
+ v = ZOOM_resultset_option_get(db->res, "searchresult.size");
+ if (v && (num = atoi(v)))
+ {
+ int i;
+ printf("SearchResult-1:");
+ for (i = 0; i < num; i++)
+ {
+ const char *v;
+ char str[60];
+
+ if (i)
+ printf(",");
+
+ sprintf(str, "searchresult.%d.id", i);
+ v = ZOOM_resultset_option_get(db->res, str);
+ if (v)
+ printf(" id=%s", v);
+
+ sprintf(str, "searchresult.%d.subquery.term", i);
+ v = ZOOM_resultset_option_get(db->res, str);
+ if (v)
+ printf(" term=%s", v);
+
+ sprintf(str, "searchresult.%d.count", i);
+ v = ZOOM_resultset_option_get(db->res, str);
+ if (v)
+ printf(" cnt=%s", v);
+ }
+ printf("\n");
+ }
+}
+
static int cmd_search(struct zoom_sh *sh, const char **args)
{
ZOOM_query s;
}
}
}
+ display_search_result(db);
/* and display */
display_records(db->con, db->res, start, count, "render");
}
#endif
if (!line_in) /* no line buffer via readline or not enabled at all */
{
- printf("ZOOM>"); fflush(stdout);
+ if (isatty(0))
+ {
+ printf("ZOOM>"); fflush(stdout);
+ }
if (!fgets(buf, sizeof(buf)-1, stdin))
{
res = -1;
{
int mask;
char *arg = 0;
- int option_ret = options("ev:", argv, argc, &arg);
+ int option_ret = options("a:ev:", argv, argc, &arg);
const char *bp = arg;
switch (option_ret)
{
case YAZ_OPTIONS_EOF:
res = shell(&sh, exit_on_error);
break;
+ case 'a':
+ ZOOM_options_set(sh.options, "apdufile", arg);
+ break;
case 'e':
exit_on_error = 1;
break;
yaz_log_init_level(mask);
break;
default:
- fprintf(stderr, "zoomsh: [-e] [-v] [commands]\n");
+ fprintf(stderr, "zoomsh: [-a apdulog] [-e] [-v level] [commands]\n");
res = 1;
}
}
int main(int argc, char **argv)
{
- int ret = zoomsh(argc, argv);
+ int ret;
+
+ yaz_enable_panic_backtrace(*argv);
+ ret = zoomsh(argc, argv);
exit(ret);
}
/*