summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
Diffstat (limited to 'Objects')
-rw-r--r--Objects/object.c12
1 files 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 *