X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLexer.cpp;h=c290260144aa8b740c37de3a9dfbd0ab92d28608;hb=89d9334e03c311a4a7585f40ad81880304d174d4;hp=3f0392902ce76c99ebccdf004f8db1999d515ba3;hpb=3b2bcef455cdc82b38ceefe57ad6444c8d0159fe;p=lyx.git diff --git a/src/Lexer.cpp b/src/Lexer.cpp index 3f0392902c..c290260144 100644 --- a/src/Lexer.cpp +++ b/src/Lexer.cpp @@ -132,25 +132,21 @@ private: }; - namespace { -class CompareTags - : public binary_function { -public: - // used by lower_bound, sort and sorted - bool operator()(LexerKeyword const & a, LexerKeyword 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; - } -}; +// used by lower_bound, sort and sorted +bool compareTags(LexerKeyword const & a, LexerKeyword const & b) +{ + // 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; +} } // namespace + Lexer::Pimpl::Pimpl(LexerKeyword * tab, int num) : is(&fb_), table(tab), no_items(num), status(0), lineno(0), commentChar('#') @@ -196,14 +192,14 @@ void Lexer::Pimpl::verifyTable() { // Check if the table is sorted and if not, sort it. if (table - && !lyx::sorted(table, table + no_items, CompareTags())) { + && !lyx::sorted(table, table + no_items, &compareTags)) { lyxerr << "The table passed to Lexer is not sorted!\n" << "Tell the developers to fix it!" << endl; // We sort it anyway to avoid problems. lyxerr << "\nUnsorted:" << endl; printTable(lyxerr); - sort(table, table + no_items, CompareTags()); + sort(table, table + no_items, &compareTags); lyxerr << "\nSorted:" << endl; printTable(lyxerr); } @@ -440,7 +436,7 @@ int Lexer::Pimpl::searchKeyword(char const * const tag) const LexerKeyword search_tag = { tag, 0 }; LexerKeyword * res = lower_bound(table, table + no_items, - search_tag, CompareTags()); + search_tag, &compareTags); // use the compare_ascii_no_case instead of compare_no_case, // because in turkish, 'i' is not the lowercase version of 'I', // and thus turkish locale breaks parsing of tags.