Kaydet (Commit) 0c9f31b4 authored tarafından Victor Stinner's avatar Victor Stinner

(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.
...@@ -10,6 +10,10 @@ What's New in Python 3.3 Alpha 1? ...@@ -10,6 +10,10 @@ What's New in Python 3.3 Alpha 1?
Core and Builtins 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 #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 - Issue #12199: The TryExcept and TryFinally and AST nodes have been unified
......
...@@ -40,6 +40,7 @@ my_fgets(char *buf, int len, FILE *fp) ...@@ -40,6 +40,7 @@ my_fgets(char *buf, int len, FILE *fp)
if (PyOS_InputHook != NULL) if (PyOS_InputHook != NULL)
(void)(PyOS_InputHook)(); (void)(PyOS_InputHook)();
errno = 0; errno = 0;
clearerr(fp);
p = fgets(buf, len, fp); p = fgets(buf, len, fp);
if (p != NULL) if (p != NULL)
return 0; /* No error */ return 0; /* No error */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment