#include <boost/cstdint.hpp>
-#include <sstream>
+#include <iterator>
#include <algorithm>
+#include <sstream>
using namespace std;
using namespace lyx::support;
// assure the used encoding is properly initialized
init();
- // first all encodable characters
- vector<char_type> symbols(encodable_.begin(), encodable_.end());
- // add those below start_encodable_
+ // first all those below start_encodable_
+ vector<char_type> 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<char_type, CharInfo> const & elem : unicodesymbols)
+ symbols.push_back(elem.first);
return symbols;
}
}
+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
{