FindAdv: Expand the list for handled latin characters

This commit is contained in:
Kornel Benko 2019-03-02 22:00:20 +01:00
parent d50923d48a
commit b21c8b214d

View File

@ -1248,8 +1248,12 @@ void Intervall::addIntervall(int low, int upper)
typedef map<string, string> AccentsMap;
static AccentsMap accents = map<string, string>();
static void buildaccent(string name, string param, string values)
static void buildaccent(string n, string param, string values)
{
stringstream s(n);
string name;
const char delim = '|';
while (getline(s, name, delim)) {
size_t start = 0;
for (size_t i = 0; i < param.size(); i++) {
string key = name + "{" + param[i] + "}";
@ -1270,6 +1274,7 @@ static void buildaccent(string name, string param, string values)
}
}
}
}
}
static void buildAccentsMap()
@ -1277,19 +1282,22 @@ static void buildAccentsMap()
accents["imath"] = "ı";
accents["ddot{\\imath}"] = "ï";
accents["acute{\\imath}"] = "í";
accents["tilde{\\imath}"] = "ĩ";
accents["jmath"] = "ȷ";
accents["hat{\\jmath}"] = "ĵ";
accents["lyxmathsym{ß}"] = "ß";
buildaccent("ddot", "aeouyAEOUY", "äëöüÿÄËÖÜŸ");
buildaccent("ddot", "aeouyAEOUY", "äëöüÿÄËÖÜŸ"); // umlaut
buildaccent("dot", "aeoyzAEOYZ", "ȧėȯẏżȦĖȮẎŻ");
buildaccent("acute", "aeouyAEOUY", "äëöüÿÄËÖÜŸ");
buildaccent("acute", "aAcCeElLoOnNrRsSuUyYzZI", "áÁćĆéÉĺĹóÓńŃŕŔśŚúÚýÝźŹÍ");
/*
buildaccent("dacute", "oOuU", "őŐűŰ");
buildaccent("H", "oOuU", "őŐűŰ"); // dacute in text
*/
buildaccent("mathring", "uU", "ůŮ");
buildaccent("r", "uU", "ůŮ"); //mathring in text
buildaccent("check", "cdnrszCDNRSZ", "čďřňšžČĎŘŇŠŽ");
buildaccent("hat", "cCoOgGhHsS", "ĉĈôÔĝĜĥĤŝŜ");
buildaccent("bar", "aAeE", "āĀēĒ");
buildaccent("mathring|r", "uU", "ůŮ");
buildaccent("check", "cCdDeElLnNrRsSTzZ", "čČďĎěĚľĽňŇřŘšŠŤžŽ"); // caron
buildaccent("hat", "cCgGhHJsSwWyYoOgG", "ĉĈĝĜĥĤĴŝŜŵŴŷŶôÔĝĜ"); // circ
buildaccent("bar|=", "aAeEoOuU", "āĀēĒōŌūŪ"); // macron
buildaccent("tilde", "I", "Ĩ"); // macron
}
/*
@ -1300,7 +1308,7 @@ void Intervall::removeAccents()
{
if (accents.empty())
buildAccentsMap();
static regex const accre("\\\\((lyxmathsym|ddot|dot|acute|mathring|r|check|check|hat|bar)\\{[^\\{\\}]+\\}|imath)");
static regex const accre("\\\\((lyxmathsym|ddot|dot|acute|mathring|r|check|check|hat|bar|=)\\{[^\\{\\}]+\\}|imath|jmath)");
smatch sub;
for (sregex_iterator itacc(par.begin(), par.end(), accre), end; itacc != end; ++itacc) {
sub = *itacc;