X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlex_pimpl.C;h=292778761a44a3bd87fc7d77c3a8b60e4b91fc6e;hb=2486c96b8d9086471299bf207b85b1ce848246aa;hp=e1c061d1a751ca0dd434bc0d3be8a5745d0185cd;hpb=7c12de7d3dba6f33e089c489c00d4df975a36011;p=lyx.git diff --git a/src/lyxlex_pimpl.C b/src/lyxlex_pimpl.C index e1c061d1a7..292778761a 100644 --- a/src/lyxlex_pimpl.C +++ b/src/lyxlex_pimpl.C @@ -20,8 +20,10 @@ #include "support/lyxalgo.h" #include "support/lstrings.h" +#include + 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; @@ -35,18 +37,22 @@ using std::ios; using std::istream; using std::ostream; -// namespace { -struct compare_tags { +namespace { + +class compare_tags + : public std::binary_function { +public: // 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) @@ -128,13 +134,13 @@ 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[Debug::LYXLEX] << "lyxlex: compressed" << endl; +#ifdef USE_COMPRESSION // 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) @@ -146,6 +152,9 @@ bool LyXLex::Pimpl::setFile(string const & filename) name = filename; lineno = 0; return gz_.is_open() && is.good(); +#else + return false; +#endif } else { lyxerr[Debug::LYXLEX] << "lyxlex: UNcompressed" << endl;