X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dict%2Finsert.c;h=396640aa3c51732fb949b8c5691de4d1a259f1e3;hb=65615b66e805376b23f24a51e7d048f4f58e6525;hp=4a0007f531bbb87bf5a4239bdfdfb9408ba981d1;hpb=400055a9f298ff9d5689dcf292c84f8cafff4697;p=idzebra-moved-to-github.git diff --git a/dict/insert.c b/dict/insert.c index 4a0007f..396640a 100644 --- a/dict/insert.c +++ b/dict/insert.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: insert.c,v $ - * Revision 1.13 1995-11-28 09:06:37 adam + * Revision 1.14 1995-12-07 11:48:56 adam + * Insert operation obeys DICT_type = 1 (slack in page). + * Function dict_open exists if page size or magic aren't right. + * + * Revision 1.13 1995/11/28 09:06:37 adam * Fixed potential dangling pointer. * * Revision 1.12 1995/09/06 10:34:44 adam @@ -411,6 +415,11 @@ static int dict_ins (Dict dict, const Dict_char *str, if (DICT_size(p)+slen+userlen >= DICT_pagesize(dict) - (1+DICT_nodir(p))*sizeof(short)) /* overflow? */ { + if (DICT_type(p)) + { + clean_page (dict, ptr, p, NULL, 0, NULL); + return dict_ins (dict, str, ptr, userlen, userinfo); + } split_page (dict, ptr, p); return dict_ins (dict, str, ptr, userlen, userinfo); }