Changeset 2410 for libcaca


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

Legend:

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

    r2299 r2410  
    173173}
    174174
    175 #if !defined(__KERNEL__)
    176175cucul_buffer_t *cucul_load_file(char const *file)
    177176{
    178177    cucul_buffer_t *buf;
    179     FILE *fp;
    180     long int size;
    181 
    182     fp = fopen(file, "rb");
    183     if(!fp)
     178    cucul_file_t *f;
     179    int ret;
     180
     181    f = cucul_file_open(file, "rb");
     182    if(!f)
    184183        return NULL;
    185184
     
    187186    if(!buf)
    188187    {
    189         fclose(fp);
    190         return NULL;
    191     }
    192 
    193     fseek(fp, 0, SEEK_END);
    194     size = ftell(fp);
    195 
    196     buf->data = malloc(size);
    197     if(!buf->data)
    198     {
    199         free(buf);
    200         fclose(fp);
    201         return NULL;
    202     }
    203     buf->size = size;
    204     buf->user_data = 0;
    205 
    206     fseek(fp, 0, SEEK_SET);
    207     fread(buf->data, buf->size, 1, fp);
    208     fclose(fp);
     188        cucul_file_close(f);
     189        return NULL;
     190    }
     191
     192    buf->data = NULL;
     193    buf->size = 0;
     194
     195    while(!cucul_file_eof(f))
     196    {
     197        buf->data = realloc(buf->data, buf->size + 1024);
     198        if(!buf->data)
     199        {
     200            int saved_errno = geterrno();
     201            free(buf);
     202            cucul_file_close(f);
     203            seterrno(saved_errno);
     204            return NULL;
     205        }
     206
     207        ret = cucul_file_read(f, buf->data + buf->size, 1024);
     208        if(ret >= 0)
     209            buf->size += ret;
     210    }
     211    cucul_file_close(f);
    209212
    210213    return buf;
    211214}
    212 #endif
    213215
    214216unsigned long int cucul_get_buffer_size(cucul_buffer_t *buf)
Note: See TracChangeset for help on using the changeset viewer.