(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.
This commit is contained in:
Victor Stinner 2011-05-30 23:47:01 +02:00
commit 0c9f31b4c0
2 changed files with 5 additions and 0 deletions

View File

@ -10,6 +10,10 @@ What's New in Python 3.3 Alpha 1?
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

View File

@ -40,6 +40,7 @@ my_fgets(char *buf, int len, FILE *fp)
if (PyOS_InputHook != NULL)
(void)(PyOS_InputHook)();
errno = 0;
clearerr(fp);
p = fgets(buf, len, fp);
if (p != NULL)
return 0; /* No error */