/[public]/psiconv/trunk/lib/psiconv/list.c
ViewVC logotype

Diff of /psiconv/trunk/lib/psiconv/list.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 74 Revision 76
125} 125}
126 126
127int psiconv_list_fread_all(psiconv_list l, FILE *f) 127int psiconv_list_fread_all(psiconv_list l, FILE *f)
128{ 128{
129 while (!feof(f)) { 129 while (!feof(f)) {
130 if (!psiconv_list_fread(l,1024,f)) 130 if (!psiconv_list_fread(l,1024,f) && !feof(f))
131 return -PSICONV_E_NOMEM; 131 return -PSICONV_E_NOMEM;
132 } 132 }
133 return -PSICONV_E_OK; 133 return -PSICONV_E_OK;
134} 134}
135 135
154 l->max_len = 1.1 * nr; 154 l->max_len = 1.1 * nr;
155 l->max_len += 16 - l->max_len % 16; 155 l->max_len += 16 - l->max_len % 16;
156 temp = realloc(l->els,l->max_len * l->el_size); 156 temp = realloc(l->els,l->max_len * l->el_size);
157 if (temp) { 157 if (temp) {
158 l->els = temp; 158 l->els = temp;
159 return 0; 159 return -PSICONV_E_OK;
160 } else 160 } else
161 return -PSICONV_E_NOMEM; 161 return -PSICONV_E_NOMEM;
162 } 162 }
163 return 0; 163 return -PSICONV_E_OK;
164} 164}
165 165
166int psiconv_list_concat(psiconv_list l, const psiconv_list extra) 166int psiconv_list_concat(psiconv_list l, const psiconv_list extra)
167{ 167{
168 int res; 168 int res;
169 if (l->el_size != extra->el_size)
170 return -PSICONV_E_OTHER;
169 if ((res = psiconv_list_resize(l, 171 if ((res = psiconv_list_resize(l,
170 l->cur_len + extra->cur_len * extra->el_size))) 172 l->cur_len + extra->cur_len)))
171 return res; 173 return res;
172 /* Unreadable but correct. */ 174 /* Unreadable but correct. */
173 memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els, 175 memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els,
174 extra->cur_len * extra->el_size); 176 extra->cur_len * extra->el_size);
177 l->cur_len += extra->cur_len;
175 return 0; 178 return 0;
176} 179}

Legend:
Removed from v.74  
changed lines
  Added in v.76

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26