/*
- * Copyright (C) 1997, Index Data I/S
+ * Copyright (C) 1997-1999, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: marcread.c,v $
- * Revision 1.2 1997-09-17 12:19:21 adam
+ * 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
+ * Member num_children removed from data1_node.
+ *
+ * Revision 1.4 1997/10/27 14:34:26 adam
+ * Fixed bug - data1 root node wasn't tagged at all!
+ *
+ * Revision 1.3 1997/09/24 13:36:51 adam
+ * *** empty log message ***
+ *
+ * Revision 1.2 1997/09/17 12:19:21 adam
* Zebra version corresponds to YAZ version 1.4.
* Changed Zebra server so that it doesn't depend on global common_resource.
*
parent->child = parent->last_child = res;
else
parent->last_child->next = res;
- parent->num_children++;
parent->last_child = res;
}
return res;
data1_node *res_root;
data1_absyn *absyn;
char *absynName;
+ data1_marctab *marctab;
if ((*p->readf)(p->fh, buf, 5) != 5)
return NULL;
return NULL;
}
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);
strcpy (res_root->u.root.type, absynName);
res_root->u.root.absyn = absyn;
- indicator_length = atoi_n (buf+10, 1);
- identifier_length = atoi_n (buf+11, 1);
+ marctab = absyn->marc;
+
+ if (marctab && marctab->force_indicator_length >= 0)
+ indicator_length = marctab->force_indicator_length;
+ else
+ indicator_length = atoi_n (buf+10, 1);
+ if (marctab && marctab->force_identifier_length >= 0)
+ identifier_length = marctab->force_identifier_length;
+ else
+ identifier_length = atoi_n (buf+11, 1);
base_address = atoi_n (buf+12, 4);
- length_data_entry = atoi_n (buf+20, 1);
- length_data_entry = atoi_n (buf+20, 1);
+
length_data_entry = atoi_n (buf+20, 1);
length_starting = atoi_n (buf+21, 1);
length_implementation = atoi_n (buf+22, 1);