/*
- * Copyright (c) 1995-1996, Index Data.
+ * Copyright (c) 1995-1997, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: client.c,v $
- * Revision 1.45 1997-05-14 06:53:29 adam
+ * Revision 1.50 1997-09-17 12:10:29 adam
+ * YAZ version 1.4.
+ *
+ * Revision 1.49 1997/09/04 13:45:17 adam
+ * Added UNImarc to list of available syntaxes.
+ *
+ * Revision 1.48 1997/09/01 08:48:44 adam
+ * New windows NT/95 port using MSV5.0. Only a few changes made
+ * to avoid warnings. Sub project created: client.dsp.
+ *
+ * Revision 1.47 1997/07/01 13:49:56 adam
+ * Take care of case when invalid target is specified on command line.
+ *
+ * Revision 1.46 1997/06/23 10:30:18 adam
+ * Added call to ccl_rpn_delete in search. Added ODR stream "out"
+ * as parameter to ccl_rpn_query to release RPN query.
+ *
+ * Revision 1.45 1997/05/14 06:53:29 adam
* C++ support.
*
* Revision 1.44 1997/05/05 11:20:35 adam
fprintf(stderr, "Usage: open (osi|tcp) ':' [tsel '/']host[':'port]\n");
return 0;
}
+ if (!strcmp(type, "tcp"))
+ {
+ t = tcpip_type;
+ protocol = PROTO_Z3950;
+ }
+ else
#ifdef USE_XTIMOSI
if (!strcmp(type, "osi"))
{
- if (!(add = mosi_strtoaddr(addr)))
- {
- perror(arg);
- return 0;
- }
t = mosi_type;
protocol = PROTO_SR;
}
else
#endif
- if (!strcmp(type, "tcp"))
- {
- if (!(add = tcpip_strtoaddr(addr)))
- {
- perror(arg);
- return 0;
- }
- t = tcpip_type;
- protocol = PROTO_Z3950;
- }
- else
{
- fprintf(stderr, "Bad type: %s\n", type);
- return 0;
+ fprintf(stderr, "Bad type: %s\n", type);
+ return 0;
}
if (!(conn = cs_create(t, 1, protocol)))
{
perror("cs_create");
return 0;
}
+ if (!(add = cs_straddr(conn, addr)))
+ {
+ perror(arg);
+ return 0;
+ }
printf("Connecting...");
fflush(stdout);
if (cs_connect(conn, add) < 0)
else if (r->which == Z_External_octet && p->u.octet_aligned->len)
{
const char *marc_buf = (char*)p->u.octet_aligned->buf;
- marc_display (marc_buf, stdout);
+ marc_display (marc_buf, NULL);
if (marcdump)
fwrite (marc_buf, strlen (marc_buf), 1, marcdump);
}
#if CCL2RPN
case QueryType_CCL2RPN:
query.which = Z_Query_type_1;
- assert((RPNquery = ccl_rpn_query(rpn)));
+ assert((RPNquery = ccl_rpn_query(out, rpn)));
bib1.proto = protocol;
bib1.oclass = CLASS_ATTSET;
bib1.value = VAL_BIB1;
RPNquery->attributeSetId = oid_getoidbyent(&bib1);
query.u.type_1 = RPNquery;
+ ccl_rpn_delete (rpn);
break;
#endif
default:
{
printf("See you later, alligator.\n");
exit(0);
+ return 0;
}
int cmd_cancel(char *arg)
recordsyntax = VAL_UKMARC;
return 1;
}
+ else if (!strcmp(arg, "unimarc"))
+ {
+ printf("Preferred format is UNIMARC\n");
+ recordsyntax = VAL_UNIMARC;
+ return 1;
+ }
else if (!strcmp(arg, "grs1"))
{
printf("Preferred format is GRS1\n");
}
else
{
- printf("Specify one of {sutrs,usmarc,danmarc,ukmarc,grs1,summary,explain}.\n");
+ printf("Specify one of {sutrs,usmarc,danmarc,ukmarc,unimarc,grs1,summary,explain}.\n");
return 0;
}
}
switch (ret)
{
case 0:
- cmd_open (arg);
- opened = 1;
+ if (cmd_open (arg) == 2)
+ opened = 1;
break;
case 'm':
if (!(marcdump = fopen (arg, "a")))