--- psiconv/trunk/lib/psiconv/list.c 2000/12/24 17:26:24 75 +++ psiconv/trunk/lib/psiconv/list.c 2000/12/25 00:26:53 76 @@ -127,7 +127,7 @@ int psiconv_list_fread_all(psiconv_list l, FILE *f) { while (!feof(f)) { - if (!psiconv_list_fread(l,1024,f)) + if (!psiconv_list_fread(l,1024,f) && !feof(f)) return -PSICONV_E_NOMEM; } return -PSICONV_E_OK; @@ -156,21 +156,24 @@ temp = realloc(l->els,l->max_len * l->el_size); if (temp) { l->els = temp; - return 0; + return -PSICONV_E_OK; } else return -PSICONV_E_NOMEM; } - return 0; + return -PSICONV_E_OK; } int psiconv_list_concat(psiconv_list l, const psiconv_list extra) { int res; + if (l->el_size != extra->el_size) + return -PSICONV_E_OTHER; if ((res = psiconv_list_resize(l, - l->cur_len + extra->cur_len * extra->el_size))) + l->cur_len + extra->cur_len))) return res; /* Unreadable but correct. */ memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els, extra->cur_len * extra->el_size); + l->cur_len += extra->cur_len; return 0; }