X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlex_pimpl.C;h=af2b2577a4aa8f87c66a0c31d8363f44afe42f39;hb=6a55be9506b112110826cf63bc21786044569f1d;hp=f5c1a1b412c19914ae3402d5a555d1aa2057d9c0;hpb=57a24ea9124812ddc5108ff1ad304ff61acc826a;p=lyx.git diff --git a/src/lyxlex_pimpl.C b/src/lyxlex_pimpl.C index f5c1a1b412..af2b2577a4 100644 --- a/src/lyxlex_pimpl.C +++ b/src/lyxlex_pimpl.C @@ -21,7 +21,7 @@ #include "support/lstrings.h" using lyx::support::compare_ascii_no_case; -using lyx::support::getExtFromContents; +using lyx::support::getFormatFromContents; using lyx::support::MakeDisplayPath; using lyx::support::split; using lyx::support::subst; @@ -30,27 +30,30 @@ using std::endl; using std::getline; using std::lower_bound; using std::sort; - +using std::string; using std::ios; using std::istream; using std::ostream; -// namespace { -struct compare_tags { +namespace { + +struct compare_tags + : public std::binary_function { // used by lower_bound, sort and sorted - inline - int operator()(keyword_item const & a, keyword_item const & b) const { + bool operator()(keyword_item const & a, keyword_item const & b) const + { // we use the ascii version, because in turkish, 'i' // is not the lowercase version of 'I', and thus // turkish locale breaks parsing of tags. return compare_ascii_no_case(a.tag, b.tag) < 0; } }; -// } // end of anon namespace + +} // end of anon namespace LyXLex::Pimpl::Pimpl(keyword_item * tab, int num) - : is(&fb__), table(tab), no_items(num), + : is(&fb_), table(tab), no_items(num), status(0), lineno(0), commentChar('#') { verifyTable(); @@ -128,45 +131,44 @@ void LyXLex::Pimpl::popTable() bool LyXLex::Pimpl::setFile(string const & filename) { - // Check the format of the file. - string const format = getExtFromContents(filename); + string const format = getFormatFromContents(filename); if (format == "gzip" || format == "zip" || format == "compress") { - lyxerr << "lyxlex: compressed" << endl; + lyxerr[Debug::LYXLEX] << "lyxlex: compressed" << endl; // The check only outputs a debug message, because it triggers // a bug in compaq cxx 6.2, where is_open() returns 'true' for // a fresh new filebuf. (JMarc) - if (gz__.is_open() || is.tellg() > 0) + if (gz_.is_open() || istream::off_type(is.tellg()) > -1) lyxerr[Debug::LYXLEX] << "Error in LyXLex::setFile: " "file or stream already set." << endl; - gz__.open(filename.c_str(), ios::in); - is.rdbuf(&gz__); + gz_.open(filename.c_str(), ios::in); + is.rdbuf(&gz_); name = filename; lineno = 0; - return gz__.is_open() && is.good(); + return gz_.is_open() && is.good(); } else { - lyxerr << "lyxlex: UNcompressed" << endl; + lyxerr[Debug::LYXLEX] << "lyxlex: UNcompressed" << endl; // The check only outputs a debug message, because it triggers // a bug in compaq cxx 6.2, where is_open() returns 'true' for // a fresh new filebuf. (JMarc) - if (fb__.is_open() || is.tellg() > 0) + if (fb_.is_open() || istream::off_type(is.tellg()) > 0) lyxerr[Debug::LYXLEX] << "Error in LyXLex::setFile: " "file or stream already set." << endl; - fb__.open(filename.c_str(), ios::in); - is.rdbuf(&fb__); + fb_.open(filename.c_str(), ios::in); + is.rdbuf(&fb_); name = filename; lineno = 0; - return fb__.is_open() && is.good(); + return fb_.is_open() && is.good(); } } void LyXLex::Pimpl::setStream(istream & i) { - if (fb__.is_open() || is.tellg() > 0) + if (fb_.is_open() || istream::off_type(is.tellg()) > 0) lyxerr[Debug::LYXLEX] << "Error in LyXLex::setStream: " "file or stream already set." << endl; is.rdbuf(i.rdbuf());