18 lines
646 B
Diff
18 lines
646 B
Diff
|
Patch adapted from Sage.
|
||
|
diff -Naur ecl-16.1.2.orig/src/c/file.d ecl-16.1.2/src/c/file.d
|
||
|
--- ecl-16.1.2.orig/src/c/file.d 2016-05-11 13:10:51.867673867 +1200
|
||
|
+++ ecl-16.1.2/src/c/file.d 2016-05-11 14:44:48.121907307 +1200
|
||
|
@@ -3354,8 +3354,10 @@
|
||
|
ecl_disable_interrupts();
|
||
|
do {
|
||
|
out = fwrite(c, sizeof(char), n, IO_STREAM_FILE(strm));
|
||
|
- } while (out < n && restartable_io_error(strm, "fwrite"));
|
||
|
- ecl_enable_interrupts();
|
||
|
+ /* Ignore write errors to stderr to avoid an infinite loop */
|
||
|
+ } while (out < n && (IO_STREAM_FILE(strm) != stderr) && restartable_io_error(strm, "fwrite"));
|
||
|
+
|
||
|
+ ecl_enable_interrupts();
|
||
|
return out;
|
||
|
}
|
||
|
|