/[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 71 Revision 72
81 return ((char *) (l->els)) + indx * l->el_size; 81 return ((char *) (l->els)) + indx * l->el_size;
82} 82}
83 83
84int psiconv_list_add(psiconv_list l, const void *el) 84int psiconv_list_add(psiconv_list l, const void *el)
85{ 85{
86 int res;
86 if (psiconv_list_resize(l,l->cur_len + 1)) 87 if ((res = psiconv_list_resize(l,l->cur_len + 1)))
87 return -PSICONV_E_NOMEM; 88 return res;
88 memcpy(((char *) (l->els)) + l->cur_len * l->el_size, el, l->el_size); 89 memcpy(((char *) (l->els)) + l->cur_len * l->el_size, el, l->el_size);
89 l->cur_len ++; 90 l->cur_len ++;
90 return 0; 91 return 0;
91} 92}
92 93
111 } 112 }
112 return l2; 113 return l2;
113 114
114} 115}
115 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 0; 121 return -PSICONV_E_NOMEM;
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} 125}
126 126
138 return -PSICONV_E_NOMEM; 138 return -PSICONV_E_NOMEM;
139 } 139 }
140 return 0; 140 return 0;
141} 141}
142 142
143int psiconv_list_concat(psiconv_list l, const psiconv_list extra)
144{
145 int res;
146 if ((res = psiconv_list_resize(l,
147 l->cur_len + extra->cur_len * extra->el_size)))
148 return res;
149 /* Unreadable but correct. */
150 memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els,
151 extra->cur_len * extra->el_size);
152 return 0;
153}

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

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