- Timestamp:
- Jun 15, 2008, 3:50:17 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/cucul/import.c
r2313 r2409 20 20 21 21 #if !defined __KERNEL__ 22 # include <stdio.h>23 22 # include <stdlib.h> 24 23 # include <string.h> … … 159 158 return -1; 160 159 #else 161 FILE *fp;162 void *data;163 ssize_t size ;160 cucul_file_t *f; 161 char *data = NULL; 162 ssize_t size = 0; 164 163 int ret; 165 164 166 f p = fopen(filename, "rb");167 if(!f p)165 f = cucul_file_open(filename, "rb"); 166 if(!f) 168 167 return -1; /* fopen already set errno */ 169 168 170 fseek(fp, 0, SEEK_END); 171 size = ftell(fp); 172 173 data = malloc(size); 174 if(!data) 175 { 176 fclose(fp); 177 seterrno(ENOMEM); 178 return -1; 179 } 180 181 fseek(fp, 0, SEEK_SET); 182 fread(data, size, 1, fp); 183 fclose(fp); 169 while(!cucul_file_eof(f)) 170 { 171 data = realloc(data, size + 1024); 172 if(!data) 173 { 174 cucul_file_close(f); 175 seterrno(ENOMEM); 176 return -1; 177 } 178 179 ret = cucul_file_read(f, data + size, 1024); 180 if(ret >= 0) 181 size += ret; 182 } 183 cucul_file_close(f); 184 184 185 185 ret = cucul_import_memory(cv, data, size, format); … … 189 189 #endif 190 190 } 191 191 192 192 /** \brief Get available import formats 193 193 *
Note: See TracChangeset
for help on using the changeset viewer.