diff --git a/src/source.cpp b/src/source.cpp index 9b7c5cc..47b5ba3 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -106,15 +106,10 @@ Glib::RefPtr Source::guess_language(const boost::filesystem::path else if(language->get_id() == "octave" && extension == ".m") { // .m is used for both Octave and Objective-C, so try to differentiate std::ifstream input(file_path.string(), std::ios::binary); - std::string buffer(256, '\0'); - input.read(&buffer[0], static_cast(buffer.size())); - buffer.resize(static_cast(input.gcount())); - if(input && (buffer.find("#import ") != std::string::npos || - buffer.find("@interface ") != std::string::npos || - buffer.find("/*") != std::string::npos || - buffer.find("//") != std::string::npos)) { + std::string line; + if(input && std::getline(input, line) && + (starts_with(line, "#import ") || starts_with(line, "@interface ") || starts_with(line, "/*") || starts_with(line, "//"))) language = language_manager->get_language("objc"); - } } return language; }