* Copyright (c) 1995-2002, Index Data
* See the file LICENSE for details.
*
- * $Id: client.c,v 1.170 2002-09-17 21:19:38 adam Exp $
+ * $Id: client.c,v 1.175 2002-12-05 12:19:23 adam Exp $
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
+#include <ctype.h>
+
+#ifdef WIN32
+#include <io.h>
+#define S_ISREG(x) (x & _S_IFREG)
+#define S_ISDIR(x) (x & _S_IFDIR)
+#endif
#include <yaz/yaz-util.h>
#define maxOtherInfosSupported 10
struct {
int oidval;
- char* value;
+ char* value;
} extraOtherInfos[maxOtherInfosSupported];
{
printf ("error = %s\n", cs_strerror(conn));
if (conn->cerrno == CSYSERR)
- perror("system");
+ {
+ char msg[256];
+ yaz_strerror(msg, sizeof(msg));
+ printf ("%s\n", msg);
+ }
cs_close(conn);
conn = 0;
return 0;
/* SEARCH SERVICE ------------------------------ */
static void display_record(Z_External *r);
-static void display_variant(Z_Variant *v, int level)
-{
- int i;
-
- for (i = 0; i < v->num_triples; i++)
- {
- printf("%*sclass=%d,type=%d", level * 4, "", *v->triples[i]->zclass,
- *v->triples[i]->type);
- if (v->triples[i]->which == Z_Triple_internationalString)
- printf(",value=%s\n", v->triples[i]->value.internationalString);
- else
- printf("\n");
- }
-}
-
-static void display_grs1(Z_GenericRecord *r, int level)
-{
- int i;
-
- if (!r)
- {
- return;
- }
- for (i = 0; i < r->num_elements; i++)
- {
- Z_TaggedElement *t;
-
- printf("%*s", level * 4, "");
- t = r->elements[i];
- printf("(");
- if (t->tagType)
- printf("%d,", *t->tagType);
- else
- printf("?,");
- if (t->tagValue->which == Z_StringOrNumeric_numeric)
- printf("%d) ", *t->tagValue->u.numeric);
- else
- printf("%s) ", t->tagValue->u.string);
- if (t->content->which == Z_ElementData_subtree)
- {
- if (!t->content->u.subtree)
- printf (" (no subtree)\n");
- else
- {
- printf("\n");
- display_grs1(t->content->u.subtree, level+1);
- }
- }
- else if (t->content->which == Z_ElementData_string)
- printf("%s\n", t->content->u.string);
- else if (t->content->which == Z_ElementData_numeric)
- printf("%d\n", *t->content->u.numeric);
- else if (t->content->which == Z_ElementData_oid)
- {
- int *ip = t->content->u.oid;
- oident *oent;
-
- if ((oent = oid_getentbyoid(t->content->u.oid)))
- printf("OID: %s\n", oent->desc);
- else
- {
- printf("{");
- while (ip && *ip >= 0)
- printf(" %d", *(ip++));
- printf(" }\n");
- }
- }
- else if (t->content->which == Z_ElementData_noDataRequested)
- printf("[No data requested]\n");
- else if (t->content->which == Z_ElementData_elementEmpty)
- printf("[Element empty]\n");
- else if (t->content->which == Z_ElementData_elementNotThere)
- printf("[Element not there]\n");
- else if (t->content->which == Z_ElementData_date)
- printf("Date: %s\n", t->content->u.date);
- else if (t->content->which == Z_ElementData_ext)
- {
- printf ("External\n");
- display_record (t->content->u.ext);
- }
- else
- printf("? type = %d\n",t->content->which);
- if (t->appliedVariant)
- display_variant(t->appliedVariant, level+1);
- if (t->metaData && t->metaData->supportedVariants)
- {
- int c;
-
- printf("%*s---- variant list\n", (level+1)*4, "");
- for (c = 0; c < t->metaData->num_supportedVariants; c++)
- {
- printf("%*svariant #%d\n", (level+1)*4, "", c);
- display_variant(t->metaData->supportedVariants[c], level + 2);
- }
- }
- }
-}
-
-
static void print_record(const unsigned char *buf, size_t len)
{
size_t i = len;
if (ent && ent->value == VAL_SOIF)
print_record((const unsigned char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len);
- else if (r->which == Z_External_octet && r->u.octet_aligned->len)
+ else if (r->which == Z_External_octet)
{
const char *octet_buf = (char*)r->u.octet_aligned->buf;
if (ent->value == VAL_TEXT_XML || ent->value == VAL_APPLICATION_XML ||
}
else if (ent && ent->value == VAL_GRS1)
{
+ WRBUF w;
if (r->which != Z_External_grs1)
{
printf("Expecting single GRS type for GRS.\n");
return;
}
- display_grs1(r->u.grs1, 0);
+ w = wrbuf_alloc();
+ yaz_display_grs1(w, r->u.grs1, 0);
+ puts (wrbuf_buf(w));
+ wrbuf_free(w, 1);
}
else
{
if (S_ISREG(status.st_mode) && (inf = fopen(fname, "r")))
{
size_t len = status.st_size;
- char *buf = xmalloc (len);
+ char *buf = (char *) xmalloc (len);
fread (buf, 1, len, inf);
notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque;
if (*recid)
{
- notToKeep->elements[0]->u.opaque = odr_malloc (out, sizeof(Odr_oct));
- notToKeep->elements[0]->u.opaque->buf = recid;
+ notToKeep->elements[0]->u.opaque = (Odr_oct *)
+ odr_malloc (out, sizeof(Odr_oct));
+ notToKeep->elements[0]->u.opaque->buf = (unsigned char *) recid;
notToKeep->elements[0]->u.opaque->size = strlen(recid);
notToKeep->elements[0]->u.opaque->len = strlen(recid);
}
{"schema",CLASS_SCHEMA},
{"tagset",CLASS_TAGSET},
{"general",CLASS_GENERAL},
- {0,0}
+ {0,(enum oid_class) 0}
};
char oname_str[101], oclass_str[101], oid_str[101];
char* name;
}
if(extraOtherInfos[i].oidval != -1)
- printf(" otherinfo %d %s %s\n",i,yaz_z3950_oid_value_to_str(extraOtherInfos[i].oidval,CLASS_RECSYN), extraOtherInfos[i].value);
+ printf(" otherinfo %d %s %s\n",
+ i,
+ yaz_z3950_oid_value_to_str(
+ (enum oid_value) extraOtherInfos[i].oidval,
+ CLASS_RECSYN),
+ extraOtherInfos[i].value);
} else {
for(i=0; i<maxOtherInfosSupported; ++i) {
if(extraOtherInfos[i].oidval != -1)
- printf(" otherinfo %d %s %s\n",i,yaz_z3950_oid_value_to_str(extraOtherInfos[i].oidval,CLASS_RECSYN), extraOtherInfos[i].value);
+ printf(" otherinfo %d %s %s\n",
+ i,
+ yaz_z3950_oid_value_to_str(
+ (enum oid_value) extraOtherInfos[i].oidval,
+ CLASS_RECSYN),
+ extraOtherInfos[i].value);
}
}
}
- if(!cmd[i].local_tabcompletes) {
- cmd[i].local_tabcompletes = calloc(1,sizeof(char**));
- }
+ if(!cmd[i].local_tabcompletes)
+ cmd[i].local_tabcompletes = (char **) calloc(1,sizeof(char**));
num_of_tabs=0;
num_of_tabs++;
}
- cmd[i].local_tabcompletes =
+ cmd[i].local_tabcompletes = (char **)
realloc(cmd[i].local_tabcompletes,(num_of_tabs+2)*sizeof(char**));
tabslist=cmd[i].local_tabcompletes;
tabslist[num_of_tabs]=strdup(tabargument);