diff options
Diffstat (limited to 'tools/lib/h5diff_util.c')
-rw-r--r-- | tools/lib/h5diff_util.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/tools/lib/h5diff_util.c b/tools/lib/h5diff_util.c index c55028c..818a933 100644 --- a/tools/lib/h5diff_util.c +++ b/tools/lib/h5diff_util.c @@ -49,17 +49,20 @@ void parallel_print(const char* format, ...) if(overflow_file == NULL) /*no overflow has occurred yet */ { bytes_written = HDvsnprintf(outBuff+outBuffOffset, OUTBUFF_SIZE-outBuffOffset, format, ap); - - va_end(ap); + + va_end(ap); va_start(ap, format); - if(bytes_written >= (OUTBUFF_SIZE-outBuffOffset)) +#ifdef VSNPRINTF_WORKS + if(bytes_written >= (OUTBUFF_SIZE-outBuffOffset)) +#else + if((bytes_written+1) == (OUTBUFF_SIZE-outBuffOffset)) +#endif { /* Delete the characters that were written to outBuff since they will be written to the overflow_file */ - memset(outBuff+outBuffOffset, 0, OUTBUFF_SIZE - outBuffOffset); - + memset(outBuff+outBuffOffset, 0, OUTBUFF_SIZE - outBuffOffset); + overflow_file = tmpfile(); - if(overflow_file == NULL) printf("Warning: Could not create overflow file. Output may be truncated.\n"); else @@ -71,7 +74,6 @@ void parallel_print(const char* format, ...) else bytes_written = HDvfprintf(overflow_file, format, ap); - } va_end(ap); } |