X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fmarcdisp.c;h=a0ae4129efe4c2645620f9299f399aa4c96c5df5;hb=e437c49e5b848a38b8dd0913da4c79828c60af18;hp=723026ff708373f790ad812c46b1c82831567a46;hpb=fc2093cfd23eda0ee8384b18dc7e7b8adffd073a;p=yaz-moved-to-github.git diff --git a/util/marcdisp.c b/util/marcdisp.c index 723026f..a0ae412 100644 --- a/util/marcdisp.c +++ b/util/marcdisp.c @@ -1,10 +1,19 @@ /* - * Copyright (c) 1995, Index Data + * Copyright (c) 1995-2000, Index Data * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * * $Log: marcdisp.c,v $ - * Revision 1.9 1999-12-21 16:24:48 adam + * Revision 1.12 2000-10-02 11:07:44 adam + * Added peer_name member for bend_init handler. Changed the YAZ + * client so that tcp: can be avoided in target spec. + * + * Revision 1.11 2000/02/29 13:44:55 adam + * Check for config.h (currently not generated). + * + * Revision 1.10 2000/02/05 10:47:19 adam + * Identifier-length and indicator-lenght no longer set to 2 (forced). + * + * Revision 1.9 1999/12/21 16:24:48 adam * More robust ISO2709 handling (in case of real bad formats). * * Revision 1.8 1999/11/30 13:47:12 adam @@ -33,6 +42,10 @@ * */ +#if HAVE_CONFIG_H +#include +#endif + #include #include #include @@ -54,13 +67,24 @@ int marc_display_ex (const char *buf, FILE *outf, int debug) outf = stdout; record_length = atoi_n (buf, 5); if (record_length < 25) + { + if (debug) + { + fprintf (outf, "Record length %d - aborting\n", record_length); + + } return -1; - indicator_length = atoi_n (buf+10, 1); - identifier_length = atoi_n (buf+11, 1); + } + if (isdigit(buf[10])) + indicator_length = atoi_n (buf+10, 1); + else + indicator_length = 2; + if (isdigit(buf[11])) + identifier_length = atoi_n (buf+11, 1); + else + identifier_length = 2; base_address = atoi_n (buf+12, 4); - indicator_length = identifier_length = 2; - length_data_entry = atoi_n (buf+20, 1); length_starting = atoi_n (buf+21, 1); length_implementation = atoi_n (buf+22, 1);