X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Fmarcread.c;h=a6924a823b7436d1d9462e15e5fe1c792b2968e3;hb=c7802a517bf6c79fefd72501e85f08f267c39ea9;hp=49d724d28d4506079a953a50b00b528b5523df6f;hpb=3c5f6226f97612c0d6ac40591f600587c5ffa858;p=idzebra-moved-to-github.git diff --git a/recctrl/marcread.c b/recctrl/marcread.c index 49d724d..a6924a8 100644 --- a/recctrl/marcread.c +++ b/recctrl/marcread.c @@ -4,7 +4,22 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: marcread.c,v $ - * Revision 1.6 1999-02-02 14:51:27 adam + * Revision 1.11 2000-05-15 15:32:51 adam + * Added support for 64 bit input file support. + * + * Revision 1.10 1999/11/30 13:48:04 adam + * Improved installation. Updated for inclusion of YAZ header files. + * + * Revision 1.9 1999/06/25 13:47:25 adam + * Minor change that prevents MSVC warning. + * + * Revision 1.8 1999/05/26 07:49:14 adam + * C++ compilation. + * + * Revision 1.7 1999/05/20 12:57:18 adam + * Implemented TCL filter. Updated recctrl system. + * + * Revision 1.6 1999/02/02 14:51:27 adam * Updated WIN32 code specific sections. Changed header. * * Revision 1.5 1997/11/18 10:03:24 adam @@ -29,9 +44,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "grsread.h" data1_node *data1_mk_node_wp (data1_handle dh, NMEM mem, data1_node *parent) @@ -68,7 +83,7 @@ data1_node *data1_mk_node_text (data1_handle dh, NMEM mem, data1_node *parent, res->u.data.what = DATA1I_text; res->u.data.len = len; if (res->u.data.len > DATA1_LOCALDATA) { - res->u.data.data = xmalloc (res->u.data.len); + res->u.data.data = (char *) xmalloc (res->u.data.len); res->destroy = destroy_data; } else @@ -154,7 +169,8 @@ data1_node *grs_read_marc (struct grs_read_info *p) if (read_bytes == record_length - 4) { off_t cur_offset = (*p->tellf)(p->fh); - assert (cur_offset > 26); + if (cur_offset <= 27) + return NULL; if (p->endf) (*p->endf)(p->fh, cur_offset - 1); } @@ -167,7 +183,7 @@ data1_node *grs_read_marc (struct grs_read_info *p) } res_root = data1_mk_node_wp (p->dh, p->mem, NULL); res_root->which = DATA1N_root; - res_root->u.root.type = nmem_malloc (p->mem, strlen(absynName)+1); + res_root->u.root.type = (char *) nmem_malloc (p->mem, strlen(absynName)+1); strcpy (res_root->u.root.type, absynName); res_root->u.root.absyn = absyn; @@ -285,3 +301,21 @@ data1_node *grs_read_marc (struct grs_read_info *p) } return res_root; } + +static void *grs_init_marc(void) +{ + return 0; +} + +static void grs_destroy_marc(void *clientData) +{ +} + +static struct recTypeGrs marc_type = { + "marc", + grs_init_marc, + grs_destroy_marc, + grs_read_marc +}; + +RecTypeGrs recTypeGrs_marc = &marc_type;