&issued_error);
// Ignore byte order mark at start of file.
- if (ci == 0xfeff && this->lineno_ == 1 && this->lineoff_ == 0)
+ if (ci == 0xfeff)
{
p = pnext;
break;
*issued_error = true;
return p + 1;
}
+
+ // Warn about byte order mark, except at start of file.
+ if (*value == 0xfeff && (this->lineno_ != 1 || this->lineoff_ != 0))
+ {
+ error_at(this->location(), "Unicode (UTF-8) BOM in middle of file");
+ *issued_error = true;
+ }
+
return p + adv;
}