X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=1e7077fa567a5941bfe36b5829322c19896ebfd7;hb=27481680fb1a69456e789e5bc8e1ec914337287d;hp=cf8dfedfe9e684b185eda2045e88d85a26ad60ed;hpb=a598b7f4ca1ad3c0ffcd5924aea118abc3d36574;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index cf8dfed..1e7077f 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: client.c,v 1.298 2005-09-26 09:15:27 adam Exp $ + * $Id: client.c,v 1.304 2006-04-21 10:28:06 adam Exp $ */ #include @@ -341,12 +341,10 @@ static void send_initRequest(const char* type_and_host) p0->which = Z_OtherInfo_externallyDefinedInfo; p0->information.externallyDefinedInfo = - yaz_set_proposal_charneg( - out, - (const char**)&negotiationCharset, - negotiationCharset ? 1 : 0, - (const char**)&yazLang, yazLang ? 1 : 0, - negotiationCharsetRecords); + yaz_set_proposal_charneg_list(out, ",", + negotiationCharset, + yazLang, + negotiationCharsetRecords); } } @@ -882,7 +880,7 @@ static void display_record(Z_External *r) if (!(*type->fun)(in, &rr, 0, 0)) { odr_perror(in, "Decoding constructed record."); - fprintf(stdout, "[Near %d]\n", odr_offset(in)); + fprintf(stdout, "[Near %ld]\n", (long) odr_offset(in)); fprintf(stdout, "Packet dump:\n---------\n"); odr_dumpBER(stdout, (char*)r->u.octet_aligned->buf, r->u.octet_aligned->len); @@ -1530,7 +1528,7 @@ static int send_searchRequest(const char *arg) if (smallSetUpperBound > 0 || (largeSetLowerBound > 1 && mediumSetPresentNumber > 0)) { - if (recordsyntax_list > 0) + if (recordsyntax_size > 0) req->preferredRecordSyntax = yaz_oidval_to_z3950oid(out, CLASS_RECSYN, recordsyntax_list[0]); req->smallSetElementSetNames = @@ -1552,7 +1550,8 @@ static int send_searchRequest(const char *arg) const char *pqf_msg; size_t off; int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); - printf("%*s^\n", off+4, ""); + int ioff = off; + printf("%*s^\n", ioff+4, ""); printf("Prefix query error: %s (code %d)\n", pqf_msg, code); yaz_pqf_destroy (pqf_parser); @@ -1599,10 +1598,11 @@ static int send_searchRequest(const char *arg) } /* display Query Expression as part of searchResult-1 */ -static void display_queryExpression (Z_QueryExpression *qe) +static void display_queryExpression (const char *lead, Z_QueryExpression *qe) { if (!qe) return; + printf(" %s=", lead); if (qe->which == Z_QueryExpression_term) { if (qe->u.term->queryTerm) @@ -1611,16 +1611,16 @@ static void display_queryExpression (Z_QueryExpression *qe) switch (term->which) { case Z_Term_general: - printf (" %.*s", term->u.general->len, term->u.general->buf); + printf ("%.*s", term->u.general->len, term->u.general->buf); break; case Z_Term_characterString: - printf (" %s", term->u.characterString); + printf ("%s", term->u.characterString); break; case Z_Term_numeric: - printf (" %d", *term->u.numeric); + printf ("%d", *term->u.numeric); break; case Z_Term_null: - printf (" null"); + printf ("null"); break; } } @@ -1646,16 +1646,20 @@ static void display_searchResult (Z_OtherInformation *o) printf ("SearchResult-1:"); for (j = 0; j < sr->num; j++) { + if (j) + printf(","); if (!sr->elements[j]->subqueryExpression) - printf (" %d", j); - display_queryExpression ( + printf("%d", j); + display_queryExpression("term", sr->elements[j]->subqueryExpression); - display_queryExpression ( + display_queryExpression("interpretation", sr->elements[j]->subqueryInterpretation); - display_queryExpression ( + display_queryExpression("recommendation", sr->elements[j]->subqueryRecommendation); if (sr->elements[j]->subqueryCount) - printf ("(%d)", *sr->elements[j]->subqueryCount); + printf(" cnt=%d", *sr->elements[j]->subqueryCount); + if (sr->elements[j]->subqueryId) + printf(" id=%s ", sr->elements[j]->subqueryId); } printf ("\n"); } @@ -2848,7 +2852,8 @@ int send_scanrequest(const char *query, int pp, int num, const char *term) const char *pqf_msg; size_t off; int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); - printf("%*s^\n", off+7, ""); + int ioff = off; + printf("%*s^\n", ioff+7, ""); printf("Prefix query error: %s (code %d)\n", pqf_msg, code); yaz_pqf_destroy (pqf_parser); return -1; @@ -3245,8 +3250,8 @@ int cmd_packagename(const char* arg) int cmd_proxy(const char* arg) { - xfree (yazProxy); - yazProxy = NULL; + xfree(yazProxy); + yazProxy = 0; if (*arg) yazProxy = xstrdup (arg); return 1; @@ -3942,7 +3947,7 @@ void wait_and_handle_response(int one_response_only) { FILE *f = ber_file ? ber_file : stdout; odr_perror(in, "Decoding incoming APDU"); - fprintf(f, "[Near %d]\n", odr_offset(in)); + fprintf(f, "[Near %ld]\n", (long) odr_offset(in)); fprintf(f, "Packet dump:\n---------\n"); odr_dumpBER(f, netbuffer, res); fprintf(f, "---------\n"); @@ -4052,7 +4057,8 @@ int cmd_cclparse(const char* arg) rpn = ccl_find_str (bibset, arg, &error, &pos); if (error) { - printf ("%*s^ - ", 3+strlen(last_cmd)+1+pos, " "); + int ioff = 3+strlen(last_cmd)+1+pos; + printf ("%*s^ - ", ioff, " "); printf ("%s\n", ccl_err_msg (error)); } else @@ -4088,6 +4094,7 @@ int cmd_set_otherinfo(const char* args) extraOtherInfos[otherinfoNo].oidval = -1; if (extraOtherInfos[otherinfoNo].value) free(extraOtherInfos[otherinfoNo].value); + extraOtherInfos[otherinfoNo].value = 0; return 0; } if (sscan_res<3) { @@ -4290,7 +4297,6 @@ static struct { } cmd_array[] = { {"open", cmd_open, "('tcp'|'ssl')':[':'][/]",NULL,0,NULL}, {"quit", cmd_quit, "",NULL,0,NULL}, - {"exit", cmd_quit, "",NULL,0,NULL}, {"find", cmd_find, "",NULL,0,NULL}, {"delete", cmd_delete, "",NULL,0,NULL}, {"base", cmd_base, "",NULL,0,NULL}, @@ -4361,6 +4367,7 @@ static struct { {"zversion", cmd_zversion, "", NULL, 0, NULL}, {"help", cmd_help, "", NULL,0,NULL}, {"init", cmd_init, "", NULL,0,NULL}, + {"exit", cmd_quit, "",NULL,0,NULL}, {0,0,0,0,0,0} }; @@ -4744,7 +4751,7 @@ int main(int argc, char **argv) hex_dump = 1; break; case 'p': - yazProxy=strdup(arg); + yazProxy = xstrdup(arg); break; case 'u': if (!auth_command)