PyTokenizer_FindEncoding() always failed because it set the tokenizer state
with only a file pointer when it called fp_setreadl() which expected a file
path. Changed fp_setreadl() to use either a file path or file descriptor
(derived from the file pointer) to fix the issue.
Closes issue 3594.
Reviewed by Antoine Pitrou and Benjamin Peterson.
diff --git a/Misc/NEWS b/Misc/NEWS
index e393c06..3e77aa2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@
Core and Builtins
-----------------
+- Issue 3594: Fix Parser/tokenizer.c:fp_setreadl() to open the file being
+ tokenized by either a file path or file pointer for the benefit of
+ PyTokenizer_FindEncoding().
+
- Issue #3696: Error parsing arguments on OpenBSD <= 4.4 and Cygwin. On
these systems, the mbstowcs() function is slightly buggy and must be
replaced with strlen() for the purpose of counting of number of wide