FindAdv: Expand the list of handled chars for dot below and ring above

This commit is contained in:
Kornel Benko 2019-03-08 22:44:00 +01:00
parent 95cbaa387c
commit f848183fa8

View File

@ -1298,7 +1298,8 @@ static void buildAccentsMap()
buildaccent("acute", "aAcCeElLoOnNrRsSuUyYzZiI", buildaccent("acute", "aAcCeElLoOnNrRsSuUyYzZiI",
"áÁćĆéÉĺĹóÓńŃŕŔśŚúÚýÝźŹíÍ"); "áÁćĆéÉĺĹóÓńŃŕŔśŚúÚýÝźŹíÍ");
buildaccent("dacute|H|h", "oOuU", "őŐűŰ"); // double acute buildaccent("dacute|H|h", "oOuU", "őŐűŰ"); // double acute
buildaccent("mathring|r", "uU", "ůŮ"); buildaccent("mathring|r", "aAuUwy",
"åÅůŮẘẙ"); // ring
accents["check{\\imath}"] = "ǐ"; accents["check{\\imath}"] = "ǐ";
accents["check{\\jmath}"] = "ǰ"; accents["check{\\jmath}"] = "ǰ";
buildaccent("check|v", "cCdDaAeEiIoOuUgGkKhHlLnNrRsSTzZ", buildaccent("check|v", "cCdDaAeEiIoOuUgGkKhHlLnNrRsSTzZ",
@ -1319,6 +1320,8 @@ static void buildAccentsMap()
accents["grave{\\imath}"] = "ì"; accents["grave{\\imath}"] = "ì";
buildaccent("grave|`", "aAeEiIoOuUnNwWyY", buildaccent("grave|`", "aAeEiIoOuUnNwWyY",
"àÀèÈìÌòÒùÙǹǸẁẀỳỲ"); // grave "àÀèÈìÌòÒùÙǹǸẁẀỳỲ"); // grave
buildaccent("subdot|d", "BbDdHhKkLlMmNnRrSsTtVvWwZzAaEeIiOoUuYy",
"ḄḅḌḍḤḥḲḳḶḷṂṃṆṇṚṛṢṣṬṭṾṿẈẉẒẓẠạẸẹỊịỌọỤụỴỵ"); // dot below
} }
/* /*
@ -1329,7 +1332,7 @@ void Intervall::removeAccents()
{ {
if (accents.empty()) if (accents.empty())
buildAccentsMap(); buildAccentsMap();
static regex const accre("\\\\((.|grave|breve|lyxmathsym|ddot|dot|acute|dacute|mathring|check|hat|bar|tilde)\\{[^\\{\\}]+\\}|(i|imath|jmath)(?![a-zA-Z]))"); static regex const accre("\\\\((.|grave|breve|lyxmathsym|ddot|dot|acute|dacute|mathring|check|hat|bar|tilde|subdot)\\{[^\\{\\}]+\\}|(i|imath|jmath)(?![a-zA-Z]))");
smatch sub; smatch sub;
for (sregex_iterator itacc(par.begin(), par.end(), accre), end; itacc != end; ++itacc) { for (sregex_iterator itacc(par.begin(), par.end(), accre), end; itacc != end; ++itacc) {
sub = *itacc; sub = *itacc;
@ -1342,7 +1345,7 @@ void Intervall::removeAccents()
} }
addIntervall(pos+val.size(), pos + sub.str(0).size()); addIntervall(pos+val.size(), pos + sub.str(0).size());
for (size_t i = pos+val.size(); i < pos + sub.str(0).size(); i++) { for (size_t i = pos+val.size(); i < pos + sub.str(0).size(); i++) {
// remove any remaining parentheses // remove traces of any remaining chars
par[i] = ' '; par[i] = ' ';
} }
} }