ref: d743498615c8e3b3f09578b924a96ac4faea85df
dir: /buf.c/
#include <u.h>
#include <libc.h>
#include <draw.h>
#include "a.h"
int
readfile(Buffer *buf, char *filename)
{
int fd;
long r;
buf->count = 0;
buf->size = 8192;
buf->data = malloc(buf->size);
if(buf->data == nil)
return -1;
fd = open(filename, OREAD);
if(fd < 0)
return -1;
for(;;){
r = read(fd, buf->data + buf->count, buf->size - buf->count);
if(r < 0)
return -1;
if(r == 0)
break;
buf->count += r;
if(buf->count == buf->size){
buf->size *= 1.5;
buf->data = realloc(buf->data, buf->size);
if(buf->data == nil)
return -1;
}
}
buf->data[buf->count] = 0;
close(fd);
return 0;
}
int writefile(Buffer *buf, char *filename)
{
USED(buf);
USED(filename);
return -1;
}