X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzoomsh.c;h=81c8d7d3273d37bac6e24787023b09163ab75c78;hp=601dafc28965561ba93cf7996788cf78f5a72597;hb=d94ffff6dcab70517a1588747bd76c6afc694a65;hpb=43a39e3fad856932e6f538bb05781d0430c58899 diff --git a/zoom/zoomsh.c b/zoom/zoomsh.c index 601dafc..81c8d7d 100644 --- a/zoom/zoomsh.c +++ b/zoom/zoomsh.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2011 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ /** \file zoomsh.c @@ -17,7 +17,7 @@ #include #if HAVE_READLINE_READLINE_H -#include +#include #endif #if HAVE_READLINE_HISTORY_H #include @@ -148,6 +148,15 @@ static int cmd_get(ZOOM_connection *c, ZOOM_resultset *r, return 0; } +static int cmd_shell(ZOOM_connection *c, ZOOM_resultset *r, + ZOOM_options options, const char **args) +{ + int ret = system(*args); + if (ret) + printf("system command returned %d\n", ret); + return 0; +} + static int cmd_rget(ZOOM_connection *c, ZOOM_resultset *r, ZOOM_options options, const char **args) @@ -166,7 +175,7 @@ static int cmd_rget(ZOOM_connection *c, ZOOM_resultset *r, const char *val; if (!r[i]) continue; - + val = ZOOM_resultset_option_get(r[i], wrbuf_cstr(key)); printf("%s = %s\n", wrbuf_cstr(key), val ? val : ""); } @@ -214,14 +223,14 @@ static void display_records(ZOOM_connection c, size_t pos = i + start; ZOOM_record rec = ZOOM_resultset_record(r, pos); const char *db = ZOOM_record_get(rec, "database", 0); - + if (ZOOM_record_error(rec, 0, 0, 0)) { const char *msg; const char *addinfo; const char *diagset; int error = ZOOM_record_error(rec, &msg, &addinfo, &diagset); - + printf("%lld %s: %s (%s:%d) %s\n", (long long) pos, (db ? db : "unknown"), msg, diagset, error, addinfo ? addinfo : "none"); @@ -400,7 +409,13 @@ static int cmd_ext(ZOOM_connection *c, ZOOM_resultset *r, int i; int ret = 0; WRBUF ext_type_str = next_token_new_wrbuf(args); - + + if (!ext_type_str) + { + printf("es: missing type " + "(itemorder, create, drop, commit, update, xmlupdate)\n"); + return 1; + } for (i = 0; i\n"); printf("set