Bug #132850 unix line terminator on windows.
Miserable hack to replace the previous miserable hack in maybe_pyc_file.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index a26781e..48b875e 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -580,18 +580,22 @@
 		unsigned char buf[2];
 		/* Mess:  In case of -x, the stream is NOT at its start now,
 		   and ungetc() was used to push back the first newline,
-		   which makes the current stream position formally undefined
-		   until that newline is read back.  So first we getc(), so
-		   that ftell() is well-defined.
+		   which makes the current stream position formally undefined,
+		   and a x-platform nightmare.
+		   Unfortunately, we have no direct way to know whether -x
+		   was specified.  So we use a terrible hack:  if the current
+		   stream position is not 0, we assume -x was specified, and
+		   give up.  Bug 132850 on SourceForge spells out the
+		   hopelessness of trying anything else (fseek and ftell
+		   don't work predictably x-platform for text-mode files).
 		*/
-		const int maybepushedback = getc(fp);
-		const long currentpos = ftell(fp);
 		int ispyc = 0;
-		rewind(fp);
-		ispyc = fread(buf, 1, 2, fp) == 2 &&
-		        ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic;
-		fseek(fp, currentpos, SEEK_SET);
-		ungetc(maybepushedback, fp);
+		if (ftell(fp) == 0) {
+			if (fread(buf, 1, 2, fp) == 2 &&
+			    ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic) 
+				ispyc = 1;
+			rewind(fp);
+		}
 		return ispyc;
 	}
 	return 0;