[Python-checkins] cpython (merge 3.2 -> default): (Merge 3.2) Issue #12016: my_fgets() now always clears errors before calling

victor.stinner python-checkins at python.org
Mon May 30 23:47:17 CEST 2011


http://hg.python.org/cpython/rev/deb6e7859211
changeset: 70536:deb6e7859211
parent: 70533:4b6e76d3b1fa
parent: 70535:de07f90ef45c
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Mon May 30 23:47:01 2011 +0200
summary:
 (Merge 3.2) Issue #12016: my_fgets() now always clears errors before calling
fgets(). Fix the following case: sys.stdin.read() stopped with CTRL+d (end of
file), raw_input() interrupted by CTRL+c.
files:
 Misc/NEWS | 4 ++++
 Parser/myreadline.c | 1 +
 2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,10 @@
 Core and Builtins
 -----------------
 
+- Issue #12016: my_fgets() now always clears errors before calling fgets(). Fix
+ the following case: sys.stdin.read() stopped with CTRL+d (end of file),
+ raw_input() interrupted by CTRL+c.
+
 - Issue #12216: Allow unexpected EOF errors to happen on any line of the file.
 
 - Issue #12199: The TryExcept and TryFinally and AST nodes have been unified
diff --git a/Parser/myreadline.c b/Parser/myreadline.c
--- a/Parser/myreadline.c
+++ b/Parser/myreadline.c
@@ -40,6 +40,7 @@
 if (PyOS_InputHook != NULL)
 (void)(PyOS_InputHook)();
 errno = 0;
+ clearerr(fp);
 p = fgets(buf, len, fp);
 if (p != NULL)
 return 0; /* No error */
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /