/[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 72 Revision 74
116 116
117size_t psiconv_list_fread(psiconv_list l,size_t size, FILE *f) 117size_t psiconv_list_fread(psiconv_list l,size_t size, FILE *f)
118{ 118{
119 size_t res; 119 size_t res;
120 if (psiconv_list_resize(l,l->cur_len + size)) 120 if (psiconv_list_resize(l,l->cur_len + size))
121 return -PSICONV_E_NOMEM; 121 return 0;
122 res = fread(((char *) (l->els)) + l->cur_len * l->el_size,l->el_size,size,f); 122 res = fread(((char *) (l->els)) + l->cur_len * l->el_size,l->el_size,size,f);
123 l->cur_len += res; 123 l->cur_len += res;
124 return res; 124 return res;
125}
126
127int psiconv_list_fread_all(psiconv_list l, FILE *f)
128{
129 while (!feof(f)) {
130 if (!psiconv_list_fread(l,1024,f))
131 return -PSICONV_E_NOMEM;
132 }
133 return -PSICONV_E_OK;
134}
135
136int psiconv_list_fwrite_all(const psiconv_list l, FILE *f)
137{
138 int pos = 0;
139 int written;
140 int len = psiconv_list_length(l);
141 while (pos < len) {
142 if (!(written = fwrite(((char *)(l->els)) + pos * l->el_size,l->el_size,
143 len - pos,f)))
144 return -PSICONV_E_OTHER;
145 pos += written;
146 }
147 return -PSICONV_E_OK;
125} 148}
126 149
127int psiconv_list_resize(psiconv_list l,unsigned int nr) 150int psiconv_list_resize(psiconv_list l,unsigned int nr)
128{ 151{
129 void * temp; 152 void * temp;

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

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