Changeset 2409 for libcaca/trunk


Ignore:
Timestamp:
Jun 15, 2008, 3:50:17 PM (12 years ago)
Author:
Sam Hocevar
Message:
  • Make cucul_import_file() use cucul_file_t functions.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/cucul/import.c

    r2313 r2409  
    2020
    2121#if !defined __KERNEL__
    22 #   include <stdio.h>
    2322#   include <stdlib.h>
    2423#   include <string.h>
     
    159158    return -1;
    160159#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;
    164163    int ret;
    165164
    166     fp = fopen(filename, "rb");
    167     if(!fp)
     165    f = cucul_file_open(filename, "rb");
     166    if(!f)
    168167        return -1; /* fopen already set errno */
    169168
    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);
    184184
    185185    ret = cucul_import_memory(cv, data, size, format);
     
    189189#endif
    190190}
    191    
     191
    192192/** \brief Get available import formats
    193193 *
Note: See TracChangeset for help on using the changeset viewer.