don't write zero bytes on flush (more efficient and avoids sigpipe)

This commit is contained in:
Alex Shinn 2012-09-25 22:46:12 +09:00
parent 1cfbcb232f
commit 03518e5bab

1
sexp.c
View file

@ -1466,6 +1466,7 @@ int sexp_buffered_flush (sexp ctx, sexp p, int forcep) {
if (off > 0) fwrite(sexp_port_buf(p), 1, off, sexp_port_stream(p)); if (off > 0) fwrite(sexp_port_buf(p), 1, off, sexp_port_stream(p));
res = fflush(sexp_port_stream(p)); res = fflush(sexp_port_stream(p));
} else if (sexp_filenop(sexp_port_fd(p))) { } else if (sexp_filenop(sexp_port_fd(p))) {
if (off > 0)
res = write(sexp_fileno_fd(sexp_port_fd(p)), sexp_port_buf(p), off); res = write(sexp_fileno_fd(sexp_port_fd(p)), sexp_port_buf(p), off);
if (res < off) { if (res < off) {
if (res > 0) { if (res > 0) {