From 24cb9395bd869ebd288995cadbcf25db3198f200 Mon Sep 17 00:00:00 2001
From: Patrik Nyblom <pan@erlang.org>
Date: Wed, 13 Jul 2011 16:42:31 +0200
Subject: Correct return values from write-functions in erl_printf

---
 erts/lib_src/common/erl_printf.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

(limited to 'erts')

diff --git a/erts/lib_src/common/erl_printf.c b/erts/lib_src/common/erl_printf.c
index 72d18ab6f1..6aa4569d44 100644
--- a/erts/lib_src/common/erl_printf.c
+++ b/erts/lib_src/common/erl_printf.c
@@ -108,7 +108,7 @@ write_f_add_cr(void *vfp, char* buf, size_t len)
 	if (PUTC(buf[i], (FILE *) vfp) == EOF)
 	    return get_error_result();
     }
-    return 0;
+    return len;
 }
 
 static int
@@ -126,13 +126,14 @@ write_f(void *vfp, char* buf, size_t len)
 #endif
     if (FWRITE((void *) buf, sizeof(char), len, (FILE *) vfp) != len)
 	return get_error_result();
-    return 0;
+    return len;
 }
 
 static int
 write_fd(void *vfdp, char* buf, size_t len)
 {
     ssize_t size;
+    size_t res = len;
     ASSERT(vfdp);
 
     while (len) {
@@ -149,7 +150,7 @@ write_fd(void *vfdp, char* buf, size_t len)
 	len -= size;
     }
 
-    return 0;
+    return res;
 }
 
 static int
@@ -160,7 +161,7 @@ write_s(void *vwbufpp, char* bufp, size_t len)
     ASSERT(len > 0);
     memcpy((void *) *wbufpp, (void *) bufp, len);
     *wbufpp += len;
-    return 0;
+    return len;
 }
 
 
@@ -182,6 +183,7 @@ write_sn(void *vwsnap, char* buf, size_t len)
 	memcpy((void *) wsnap->buf, (void *) buf, sz);
 	wsnap->buf += sz;
 	wsnap->len -= sz;
+	return sz;
     }
     return 0;
 }
@@ -201,7 +203,7 @@ write_ds(void *vdsbufp, char* buf, size_t len)
     }
     memcpy((void *) (dsbufp->str + dsbufp->str_len), (void *) buf, len);
     dsbufp->str_len += len;
-    return 0;
+    return len;
 }
 
 int
-- 
cgit v1.2.3