+ /* not enough room - split needed ... */
+ if (DICT_type(p) == 1)
+ {
+ clean_page (dict, ptr, p, NULL, 0, NULL);
+ return dict_ins (dict, str-1, ptr,
+ userlen, userinfo);
+ }
+ if (split_page (dict, ptr, p))
+ {
+ yaz_log (YLOG_FATAL, "Unable to split page %d\n", ptr);
+ assert(0);
+ }
+ return dict_ins (dict, str-1, ptr, userlen, userinfo);
+ }
+ else
+ { /* enough room - no split needed ... */
+ info = (char*)p + DICT_size(p);
+ memcpy (info, &subptr, sizeof(subptr));
+ memcpy (info+sizeof(Dict_ptr), &dc, sizeof(Dict_char));
+ info[sizeof(Dict_char)+sizeof(Dict_ptr)] = userlen;
+ memcpy (info+sizeof(Dict_char)+sizeof(Dict_ptr)+1,