X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fencoding.C;h=982d4d2c386d33550da957d07c5f08d949a5bd21;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=a57fed5cc69b9cdb5633277b76c51a11b9982c24;hpb=fa1856440c9b323c4f1b5a9034264357c7087bb4;p=lyx.git diff --git a/src/encoding.C b/src/encoding.C index a57fed5cc6..982d4d2c38 100644 --- a/src/encoding.C +++ b/src/encoding.C @@ -224,18 +224,47 @@ char_type Encodings::transformChar(char_type c, } -Encoding const * Encodings::getEncoding(string const & encoding) const +Encoding const * Encodings::getFromLyXName(string const & name) const { - EncodingList::const_iterator it = encodinglist.find(encoding); + EncodingList::const_iterator it = encodinglist.find(name); if (it != encodinglist.end()) return &it->second; else return 0; } + +namespace { + +class LaTeXNamesEqual : public std::unary_function, bool> { + public: + LaTeXNamesEqual(string const & LaTeXName) + : LaTeXName_(LaTeXName) {} + bool operator()(std::pair const & encoding) const + { + return encoding.second.latexName() == LaTeXName_; + } + private: + string LaTeXName_; +}; + +} // namespace anon + + +Encoding const * Encodings::getFromLaTeXName(string const & name) const +{ + EncodingList::const_iterator const it = + std::find_if(encodinglist.begin(), encodinglist.end(), + LaTeXNamesEqual(name)); + if (it != encodinglist.end()) + return &it->second; + else + return 0; +} + + Encodings::Encodings() { - symbol_encoding_ = Encoding("symbol", "", ""); } void Encodings::read(string const & filename)