X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FEncoding.cpp;h=9dde12d1213fc6d06e80ba0d28d27345605e1c39;hb=2de30c62f8d671a8c8d4d52a6a7310e2c5ca84de;hp=73edc843ff361bfe977441284f67f10d498239e6;hpb=f35ed0c16836db4e8241770ad25925af9b94009e;p=lyx.git diff --git a/src/Encoding.cpp b/src/Encoding.cpp index 73edc843ff..9dde12d121 100644 --- a/src/Encoding.cpp +++ b/src/Encoding.cpp @@ -25,8 +25,9 @@ #include -#include +#include #include +#include using namespace std; using namespace lyx::support; @@ -259,16 +260,15 @@ vector Encoding::symbolsList() const // assure the used encoding is properly initialized init(); - // first all encodable characters - vector symbols(encodable_.begin(), encodable_.end()); - // add those below start_encodable_ + // first all those below start_encodable_ + vector symbols; for (char_type c = 0; c < start_encodable_; ++c) symbols.push_back(c); + //add all encodable characters + copy(encodable_.begin(), encodable_.end(), back_inserter(symbols)); // now the ones from the unicodesymbols file - CharInfoMap::const_iterator const end = unicodesymbols.end(); - CharInfoMap::const_iterator it = unicodesymbols.begin(); - for (; it != end; ++it) - symbols.push_back(it->first); + for (pair const & elem : unicodesymbols) + symbols.push_back(elem.first); return symbols; } @@ -601,6 +601,16 @@ bool Encodings::isMathAlpha(char_type c) } +bool Encodings::isUnicodeTextOnly(char_type c) +{ + if (isASCII(c) || isMathAlpha(c)) + return false; + + CharInfoMap::const_iterator const it = unicodesymbols.find(c); + return it == unicodesymbols.end() || it->second.mathcommand().empty(); +} + + Encoding const * Encodings::fromLyXName(string const & name, bool allowUnsafe) const {