X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fclient.c;h=5dbe87649e63c6759866ce2e42994e13aead930f;hp=353a6ede4d02aa3b38f9dc1d7f4aef00b1151647;hb=10308339de640b9ff73ed096a6ed2f5faf5646de;hpb=f65413048bdfaaa34f61c9930cc530c31ad2d97a diff --git a/client/client.c b/client/client.c index 353a6ed..5dbe876 100644 --- a/client/client.c +++ b/client/client.c @@ -4,7 +4,19 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: client.c,v $ - * Revision 1.3 1995-05-22 15:06:53 quinn + * Revision 1.7 1995-06-02 09:50:09 quinn + * Smallish. + * + * Revision 1.6 1995/05/31 08:29:21 quinn + * Nothing significant. + * + * Revision 1.5 1995/05/29 08:10:47 quinn + * Moved oid.c to util. + * + * Revision 1.4 1995/05/22 15:30:13 adam + * Client uses prefix query notation. + * + * Revision 1.3 1995/05/22 15:06:53 quinn * *** empty log message *** * * Revision 1.2 1995/05/22 14:56:40 quinn @@ -33,10 +45,17 @@ #endif #include -#include #include + +#ifdef RPN_QUERY +#ifdef PREFIX_QUERY +#include +#else #include +#endif +#endif + #include "../version.h" #define C_PROMPT "Z> " @@ -51,7 +70,11 @@ static int largeSetLowerBound = 1; static int mediumSetPresentNumber = 0; static int setno = 1; /* current set offset */ static int protocol = PROTO_Z3950; /* current app protocol */ +#ifdef RPN_QUERY +#ifndef PREFIX_QUERY static CCL_bibset bibset; /* CCL bibset handle */ +#endif +#endif static void send_apdu(Z_APDU *a) { @@ -82,9 +105,8 @@ static void send_initRequest() ODR_MASK_SET(req->options, Z_Options_search); ODR_MASK_SET(req->options, Z_Options_present); - ODR_MASK_SET(req->protocolVersion, 0); - ODR_MASK_SET(req->protocolVersion, 1); - ODR_MASK_SET(req->protocolVersion, 2); + ODR_MASK_SET(req->protocolVersion, Z_ProtocolVersion_1); + ODR_MASK_SET(req->protocolVersion, Z_ProtocolVersion_2); req->idAuthentication = auth; @@ -166,7 +188,7 @@ int cmd_open(char *arg) fprintf(stderr, "Bad type: %s\n", type); return 0; } - if (!(conn = cs_create(t, 1, CS_Z3950))) + if (!(conn = cs_create(t, 1, protocol))) { perror("cs_create"); return 0; @@ -180,7 +202,7 @@ int cmd_open(char *arg) conn = 0; return 0; } - printf("Ok!\n"); + printf("Ok.\n"); send_initRequest(); return 2; } @@ -289,16 +311,22 @@ static int send_searchRequest(char *arg) Z_SearchRequest *req = apdu->u.searchRequest; char *databaseNames = database; Z_Query query; +#ifdef RPN_QUERY +#ifndef PREFIX_QUERY + struct ccl_rpn_node *rpn; int error, pos; +#endif +#endif char setstring[100]; +#ifdef RPN_QUERY Z_RPNQuery *RPNquery; oident bib1; - struct ccl_rpn_node *rpn; -#ifndef RPN_QUERY +#else Odr_oct ccl_query; #endif #ifdef RPN_QUERY +#ifndef PREFIX_QUERY rpn = ccl_find_str(bibset, arg, &error, &pos); if (error) { @@ -306,6 +334,7 @@ static int send_searchRequest(char *arg) return 0; } #endif +#endif if (!strcmp(arg, "@big")) /* strictly for troublemaking */ { @@ -334,7 +363,17 @@ static int send_searchRequest(char *arg) #ifdef RPN_QUERY query.which = Z_Query_type_1; + +#ifndef PREFIX_QUERY assert((RPNquery = ccl_rpn_query(rpn))); +#else + RPNquery = p_query_rpn (out, arg); + if (!RPNquery) + { + printf("Prefix query error\n"); + return 0; + } +#endif bib1.proto = protocol; bib1.class = CLASS_ATTSET; bib1.value = VAL_BIB1; @@ -486,7 +525,11 @@ int cmd_quit(char *arg) static void initialize(void) { +#ifdef RPN_QUERY +#ifndef PREFIX_QUERY FILE *inf; +#endif +#endif if (!(out = odr_createmem(ODR_ENCODE)) || !(in = odr_createmem(ODR_DECODE)) || @@ -497,6 +540,8 @@ static void initialize(void) } setvbuf(stdout, 0, _IONBF, 0); +#ifdef RPN_QUERY +#ifndef PREFIX_QUERY bibset = ccl_qual_mk (); inf = fopen ("default.bib", "r"); if (inf) @@ -504,6 +549,8 @@ static void initialize(void) ccl_qual_file (bibset, inf); fclose (inf); } +#endif +#endif } static int client(void)