diff --git a/include/chaiscript/language/chaiscript_engine.hpp b/include/chaiscript/language/chaiscript_engine.hpp index 9b2384b1..e903dbde 100644 --- a/include/chaiscript/language/chaiscript_engine.hpp +++ b/include/chaiscript/language/chaiscript_engine.hpp @@ -206,14 +206,14 @@ namespace chaiscript /// Skip BOM at the beginning of file static bool skip_bom(std::ifstream &infile) { - std::streamsize bytes_needed = 3; - std::streamsize bytes_read = 0; - char buffer[4]; + size_t bytes_needed = 3; + char buffer[3]; - bytes_read = infile.readsome(buffer, bytes_needed); + memset(buffer, '\0', bytes_needed); - if (!bytes_needed < bytes_read - && (buffer[0] == '\xef') + infile.read(buffer, bytes_needed); + + if ((buffer[0] == '\xef') && (buffer[1] == '\xbb') && (buffer[2] == '\xbf')) {