From 278ef591107ef670d164d070d2c42e30bc903d57 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 27 Jul 1991 21:40:24 +0000 Subject: Check for write errors after printing a value --- Objects/object.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Objects/object.c b/Objects/object.c index 79c12f2..2000f03 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -67,6 +67,7 @@ printobject(op, fp, flags) FILE *fp; int flags; { + int ret = 0; if (intrcheck()) { err_set(KeyboardInterrupt); return -1; @@ -81,9 +82,16 @@ printobject(op, fp, flags) fprintf(fp, "<%s object at %lx>", op->ob_type->tp_name, (long)op); else - return (*op->ob_type->tp_print)(op, fp, flags); + ret = (*op->ob_type->tp_print)(op, fp, flags); } - return 0; + if (ret == 0) { + if (ferror(fp)) { + err_errno(RuntimeError); + clearerr(fp); + ret = -1; + } + } + return ret; } object * -- cgit v0.12