X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=351594e265adec3eeea6e5dc263001bc2b2bc8d1;hb=df19fd9743e7aa080e4b228572b0a116dbf76b7a;hp=71432b4e2ca16f298089f51bfca017c6f49c3a8b;hpb=9885c9c651e293561fad21cbc7d01b6b7b47e5c2;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 71432b4..351594e 100644 --- a/client/client.c +++ b/client/client.c @@ -13,7 +13,6 @@ #include #include #include -#include #ifndef WIN32 #include #endif @@ -49,7 +48,6 @@ #include #include -#define NO_OID 1 #include #include #include @@ -109,6 +107,7 @@ static int largeSetLowerBound = 1; static int mediumSetPresentNumber = 0; static Z_ElementSetNames *elementSetNames = 0; static Z_FacetList *facet_list = 0; +static ODR facet_odr = 0; static Odr_int setno = 1; /* current set offset */ static enum oid_proto protocol = PROTO_Z3950; /* current app protocol */ #define RECORDSYNTAX_MAX 20 @@ -764,10 +763,6 @@ static int cmd_open(const char *arg) strncpy(cur_host, arg, sizeof(cur_host)-1); cur_host[sizeof(cur_host)-1] = 0; } - /* TODO Make facet definition survive the open command without crashing */ - /* TODO Fix deallocation */ - facet_list = 0; - set_base(""); r = session_connect(cur_host); if (conn && conn->protocol == PROTO_HTTP) @@ -2311,22 +2306,6 @@ static int only_z3950(void) return 0; } -static int is_SRW(void) -{ - if (!conn) - { - printf("Not connected yet\n"); - return 1; - } - if (protocol == PROTO_HTTP && yaz_matchstr(sru_method, "solr")) - { - printf("Not supported by SRW\n"); - return 1; - } - return 0; -} - - static int cmd_update_common(const char *arg, int version); static int cmd_update(const char *arg) @@ -2934,21 +2913,17 @@ static int cmd_find(const char *arg) static int cmd_facets(const char *arg) { - /* TODO Wrong odr. Loosing memory */ - ODR odr = odr_createmem(ODR_ENCODE); - int size = 0; + if (!facet_odr) + facet_odr = odr_createmem(ODR_ENCODE); + odr_reset(facet_odr); + if (!*arg) { facet_list = 0; printf("Facets cleared.\n"); return 0; } - size = strlen(arg); - if (is_SRW()) { - printf("WARN: No supported for SRW/SRU.\n"); - } - facet_list = yaz_pqf_parse_facet_list(odr, arg); - + facet_list = yaz_pqf_parse_facet_list(facet_odr, arg); if (!facet_list) { printf("Invalid facet list: %s", arg); @@ -2957,7 +2932,6 @@ static int cmd_facets(const char *arg) return 1; } - static int cmd_delete(const char *arg) { if (only_z3950()) @@ -3067,7 +3041,7 @@ static int parse_show_args(const char *arg_c, char *setstring, *start = start_position; if (*end_ptr == '\0') return 1; - while (isspace(*(unsigned char *)end_ptr)) + while (yaz_isspace(*end_ptr)) end_ptr++; if (*end_ptr != '+') { @@ -3084,7 +3058,7 @@ static int parse_show_args(const char *arg_c, char *setstring, } if (*end_ptr == '\0') return 1; - while (isspace(*(unsigned char *)end_ptr)) + while (yaz_isspace(*end_ptr)) end_ptr++; if (*end_ptr != '+') { @@ -5180,7 +5154,7 @@ static void process_cmd_line(char* line) for (; *p; ++p) { - if (!isspace(*(unsigned char *) p)) + if (!yaz_isspace(*p)) lastnonspace = p; } if (lastnonspace)