Commit
f0e67a1d29102aa9905aecf2b0f98449697d5af3 changed the control
flow so that PerlIO_tell(PL_rsfp) could be called when PL_rsfp was
NULL, which produces a crash at least on Windows with the MSVCRT
runtime.
This change moves the detection if PL_rsfp is NULL or not closer to
the location where is is actually tested, which gets rid of the
crashes. I however have *not* verified if the changes in control
flow in
f0e67a1d are otherwise correct or not.
}
do {
U32 fake_eof = 0;
- bof = PL_rsfp ? TRUE : FALSE;
if (0) {
fake_eof:
fake_eof = LEX_FAKE_EOF;
s = PL_bufptr;
/* If it looks like the start of a BOM or raw UTF-16,
* check if it in fact is. */
+ bof = PL_rsfp ? TRUE : FALSE;
if (bof &&
(*s == 0 ||
*(U8*)s == 0xEF ||