]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Check for write errors after printing a value
authorGuido van Rossum <guido@python.org>
Sat, 27 Jul 1991 21:40:24 +0000 (21:40 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 27 Jul 1991 21:40:24 +0000 (21:40 +0000)
Objects/object.c

index 79c12f2b9065870ad24b4221ddf2d19501fb797e..2000f03edb4d1b6b87251609434ad6d55bc3cf01 100644 (file)
@@ -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 *