X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=0cdb8e23694b2f2209e900103b2cd23f285186e6;hb=a6a8ea2837dd78d21fe036fff4b8d91c0d6e09c8;hp=8a7424f98febdd04e28cfea257ed5a7eaf39152b;hpb=f13b69ddee7417ad6430f6965982295e43ea687a;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 8a7424f..0cdb8e2 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2002, Index Data * See the file LICENSE for details. * - * $Id: client.c,v 1.161 2002-07-12 12:20:34 ja7 Exp $ + * $Id: client.c,v 1.163 2002-08-26 12:15:35 adam Exp $ */ #include @@ -306,10 +306,11 @@ static int process_initResponse(Z_InitResponse *res) char *charset=NULL, *lang=NULL; int selected; - yaz_get_response_charneg(session_mem, p, &charset, &lang, &selected); + yaz_get_response_charneg(session_mem, p, &charset, &lang, + &selected); - printf("Accepted character set : `%s'\n", charset); - printf("Accepted code language : `%s'\n", lang); + printf("Accepted character set : %s\n", charset); + printf("Accepted code language : %s\n", lang ? lang : "none"); printf("Accepted records in ...: %d\n", selected ); } } @@ -332,13 +333,20 @@ static int cmd_base(char *arg) num_databaseNames = 0; while (1) { + char *cp1; if (!(cp = strchr(arg, ' '))) cp = arg + strlen(arg); if (cp - arg < 1) break; databaseNames[num_databaseNames] = (char *)xmalloc (1 + cp - arg); memcpy (databaseNames[num_databaseNames], arg, cp - arg); - databaseNames[num_databaseNames++][cp - arg] = '\0'; + databaseNames[num_databaseNames][cp - arg] = '\0'; + + for (cp1 = databaseNames[num_databaseNames]; *cp1 ; cp1++) + if (*cp1 == '+') + *cp1 = ' '; + num_databaseNames++; + if (!*cp) break; arg = cp+1; @@ -901,11 +909,23 @@ static void display_queryExpression (Z_QueryExpression *qe) if (qe->u.term->queryTerm) { Z_Term *term = qe->u.term->queryTerm; - if (term->which == Z_Term_general) + switch (term->which) + { + case Z_Term_general: printf (" %.*s", term->u.general->len, term->u.general->buf); + break; + case Z_Term_characterString: + printf (" %s", term->u.characterString); + break; + case Z_Term_numeric: + printf (" %d", *term->u.numeric); + break; + case Z_Term_null: + printf (" null"); + break; + } } } - } /* see if we can find USR:SearchResult-1 */ @@ -2114,17 +2134,24 @@ int cmd_proxy(char* arg) int cmd_charset(char* arg) { - if (*arg == '\0') { - printf("Current character set is `%s'\n", (yazCharset)?yazCharset:NULL); + char l1[30], l2[30]; + + *l1 = *l2 = 0; + if (sscanf(arg, "%29s %29s", l1, l2) < 1) + { + printf("Current character set is `%s'\n", (yazCharset) ? + yazCharset:NULL); return 1; } xfree (yazCharset); yazCharset = NULL; - if (*arg) + if (*l1) + yazCharset = xstrdup(l1); + if (*l2) { - yazCharset = (char *) xmalloc (strlen(arg)+1); - strcpy (yazCharset, arg); - } + odr_set_charset (out, l1, l2); + odr_set_charset (in, l2, l1); + } return 1; }