diff --git a/src/svalue.c b/src/svalue.c index 08138506ab2a6b4cf44639966bba5c7aa4f2f019..140bceb9be6a64b98f9bd7d9040f64941f2ab4e2 100644 --- a/src/svalue.c +++ b/src/svalue.c @@ -1770,10 +1770,15 @@ PMOD_EXPORT void print_svalue (FILE *out, const struct svalue *s) { dynamic_buffer save_buf; dynbuf_string str; + SIZE_T off = 0; init_buf(&save_buf); describe_svalue (s, 0, NULL); str = complex_free_buf(&save_buf); - fwrite (str.str, str.len, 1, out); + while (off < str.len) { + SIZE_T num = fwrite (str.str + off, 1, str.len - off, out); + if (num) off += num; + else break; + } free (str.str); }