X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=248115a43bf25352cda7b2488186d3f81424e99e;hb=0aa8e547996dc0adb27cc1e10c25c472585f63cb;hp=2df1cdaf7a126526f42713101e884d123c60bb4e;hpb=8e3d81fc1e875957337ff69c6a449c40c00ed8bd;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 2df1cda..248115a 100644 --- a/client/client.c +++ b/client/client.c @@ -4,7 +4,19 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: client.c,v $ - * Revision 1.38 1996-08-12 14:09:11 adam + * Revision 1.42 1996-10-08 10:44:57 quinn + * Resolved conflicts. + * + * Revision 1.41 1996/10/07 15:29:03 quinn + * Work + * + * Revision 1.40 1996/08/29 14:19:34 quinn + * Fixed conflict (CVS) + * + * Revision 1.39 1996/08/27 10:43:22 quinn + * Made select() optional + * + * Revision 1.38 1996/08/12 14:09:11 adam * Default prefix query attribute set defined by using p_query_attset. * * Revision 1.37 1996/07/06 19:58:29 quinn @@ -479,7 +491,9 @@ static void display_record(Z_DatabaseRecord *p) r->which = type->what; } } - if (r->which == Z_External_octet && p->u.octet_aligned->len) + if (ent->value == VAL_SOIF) + printf("%.*s", r->u.octet_aligned->len, r->u.octet_aligned->buf); + else if (r->which == Z_External_octet && p->u.octet_aligned->len) marc_display ((char*)p->u.octet_aligned->buf, stdout); else if (ent->value == VAL_SUTRS) { @@ -989,12 +1003,24 @@ int cmd_format(char *arg) recordsyntax = VAL_DANMARC; return 1; } + else if (!strcmp(arg, "ukmarc")) + { + printf("Preferred format is UKMARC\n"); + recordsyntax = VAL_UKMARC; + return 1; + } else if (!strcmp(arg, "grs1")) { printf("Preferred format is GRS1\n"); recordsyntax = VAL_GRS1; return 1; } + else if (!strcmp(arg, "soif")) + { + printf("Preferred format is SOIF\n"); + recordsyntax = VAL_SOIF; + return 1; + } else if (!strcmp(arg, "summary")) { printf("Preferred format is Summary\n"); @@ -1009,7 +1035,7 @@ int cmd_format(char *arg) } else { - printf("Specify one of {sutrs,usmarc,danmarc,grs1,summary,explain}.\n"); + printf("Specify one of {sutrs,usmarc,danmarc,ukmarc,grs1,summary,explain}.\n"); return 0; } } @@ -1110,7 +1136,7 @@ static void initialize(void) #endif } -static int client(void) +static int client(int wait) { static struct { char *cmd; @@ -1145,9 +1171,12 @@ static int client(void) while (1) { int res; +#ifdef USE_SELECT fd_set input; +#endif char line[1024], word[1024], arg[1024]; +#ifdef USE_SELECT FD_ZERO(&input); FD_SET(0, &input); if (conn) @@ -1159,7 +1188,10 @@ static int client(void) } if (!res) continue; - if (FD_ISSET(0, &input)) + if (!wait && FD_ISSET(0, &input)) +#else + if (!wait) +#endif { /* quick & dirty way to get a command line. */ if (!gets(line)) @@ -1187,9 +1219,14 @@ static int client(void) res = 1; } if (res < 2) + { printf(C_PROMPT); + continue; + } } +#ifdef USE_SELECT if (conn && FD_ISSET(cs_fileno(conn), &input)) +#endif { do { @@ -1256,6 +1293,7 @@ static int client(void) } while (cs_more(conn)); } + wait = 0; } return 0; } @@ -1272,5 +1310,5 @@ int main(int argc, char **argv) perror(marcdump_file); exit(1); } - return client(); + return client((argc > 1)); }