void buf_init(Buf* buf);
void buf_load(Buf* buf, char* path);
void buf_reload(Buf* buf);
-void buf_save(Buf* buf);
+int buf_save(Buf* buf);
size_t buf_end(Buf* buf);
int buf_getrat(Buf* buf, size_t off);
buf_load(buf, path);
}
-void buf_save(Buf* buf) {
- if (0 == buf_end(buf)) return;
+int buf_save(Buf* buf) {
+ if (0 == buf_end(buf)) return buf->status;
char* wptr;
long fd, nwrite = 0, towrite = 0;
if (buf->path && (fd = open(buf->path, O_WRONLY|O_CREAT|O_TRUNC, 0644)) >= 0) {
} else {
buf->status = ERRORED;
}
+ return buf->status;
}
static void buf_resize(Buf* buf, size_t sz) {
if (!path) path = strdup(arg);
free(view->buffer.path);
view->buffer.path = path;
- buf_save(&(view->buffer));
- if (view->buffer.status == NORMAL) {
+ if (buf_save(&(view->buffer)) == NORMAL) {
char* path = realpath(view->buffer.path, NULL);
if (path) {
free(view->buffer.path);