summaryrefslogtreecommitdiffstats
path: root/Parser
diff options
context:
space:
mode:
Diffstat (limited to 'Parser')
-rw-r--r--Parser/pgenmain.c11
-rw-r--r--Parser/tokenizer.c9
2 files changed, 16 insertions, 4 deletions
diff --git a/Parser/pgenmain.c b/Parser/pgenmain.c
index 2a284bc..d25cbd4 100644
--- a/Parser/pgenmain.c
+++ b/Parser/pgenmain.c
@@ -13,6 +13,7 @@
- check for duplicate definitions of names (instead of fatal err)
*/
+#include "Python.h"
#include "pgenheaders.h"
#include "grammar.h"
#include "node.h"
@@ -182,6 +183,16 @@ PyOS_Readline(char *prompt)
return PyMem_REALLOC(p, n+1);
}
+#ifdef WITH_UNIVERSAL_NEWLINES
+/* No-nonsense fgets */
+char *
+Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj)
+{
+ return fgets(buf, n, stream);
+}
+#endif
+
+
#include <stdarg.h>
void
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 324d9b6..b4e0fbf 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -1,6 +1,7 @@
/* Tokenizer implementation */
+#include "Python.h"
#include "pgenheaders.h"
#include <ctype.h>
@@ -245,8 +246,8 @@ tok_nextc(register struct tok_state *tok)
}
tok->end = tok->buf + BUFSIZ;
}
- if (fgets(tok->buf, (int)(tok->end - tok->buf),
- tok->fp) == NULL) {
+ if (Py_UniversalNewlineFgets(tok->buf, (int)(tok->end - tok->buf),
+ tok->fp, NULL) == NULL) {
tok->done = E_EOF;
done = 1;
}
@@ -284,9 +285,9 @@ tok_nextc(register struct tok_state *tok)
tok->end = tok->buf + newsize;
tok->start = curstart < 0 ? NULL :
tok->buf + curstart;
- if (fgets(tok->inp,
+ if (Py_UniversalNewlineFgets(tok->inp,
(int)(tok->end - tok->inp),
- tok->fp) == NULL) {
+ tok->fp, NULL) == NULL) {
/* Last line does not end in \n,
fake one */
strcpy(tok->inp, "\n");