]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.cpp
FindAdv: Added remaining accents(2) dgrave, textdoublegrave, rcap, textroundcap
[lyx.git] / src / lyxfind.cpp
index b3474488280f2d79cee379018bef605f5a0f2f93..d4085d04cddbb66c811e768236ffd3a062768337 100644 (file)
@@ -1109,18 +1109,21 @@ class Border {
   int upper;
 };
 
-static vector<Border> borders = vector<Border>(30);
-
 #define MAXOPENED 30
 class Intervall {
   bool isPatternString;
- public:
- explicit Intervall(bool isPattern) :
-  isPatternString(isPattern),
-    ignoreidx(-1),
-    actualdeptindex(0) { depts[0] = 0; closes[0] = 0;};
+public:
+  explicit Intervall(bool isPattern, string const & p) :
+       isPatternString(isPattern), par(p), ignoreidx(-1), actualdeptindex(0),
+       hasTitle(false)
+  {
+    depts[0] = 0;
+    closes[0] = 0;
+  }
+
   string par;
   int ignoreidx;
+  static vector<Border> borders;
   int depts[MAXOPENED];
   int closes[MAXOPENED];
   int actualdeptindex;
@@ -1142,6 +1145,8 @@ class Intervall {
   // string show(int lastpos);
 };
 
+vector<Border> Intervall::borders = vector<Border>(30);
+
 int Intervall::isOpeningPar(int pos)
 {
   if ((pos < 0) || (size_t(pos) >= par.size()))
@@ -1360,6 +1365,14 @@ static void buildAccentsMap()
                                       "ḒḓḘḙḼḽṊṋṰṱṶṷ"); // subcircum
   buildaccent("subtilde|textsubtilde", "EeIiUu",
                                        "ḚḛḬḭṴṵ");  // subtilde
+  accents["dgrave{\\imath}"] = "ȉ";
+  accents["textdoublegrave{\\i}"] = "ȉ";
+  buildaccent("dgrave|textdoublegrave", "AaEeIiOoRrUu",
+                                        "ȀȁȄȅȈȉȌȍȐȑȔȕ"); // double grave
+  accents["rcap{\\imath}"] = "ȉ";
+  accents["textroundcap{\\i}"] = "ȉ";
+  buildaccent("rcap|textroundcap", "AaEeIiOoRrUu",
+                                   "ȂȃȆȇȊȋȎȏȒȓȖȗ"); // inverted breve
 }
 
 /*
@@ -1370,7 +1383,7 @@ void Intervall::removeAccents()
 {
   if (accents.empty())
     buildAccentsMap();
-  static regex const accre("\\\\(([\\S]|grave|breve|lyxmathsym|text|ddot|dot|acute|dacute|mathring|check|hat|bar|tilde|subdot|ogonek|cedilla|subring|textsubring|subhat|textsubcircum|subtilde|textsubtilde)\\{[^\\{\\}]+\\}|(i|imath|jmath)(?![a-zA-Z]))");
+  static regex const accre("\\\\(([\\S]|grave|breve|lyxmathsym|text|ddot|dot|acute|dacute|mathring|check|hat|bar|tilde|subdot|ogonek|cedilla|subring|textsubring|subhat|textsubcircum|subtilde|textsubtilde|dgrave|textdoublegrave|rcap|textroundcap)\\{[^\\{\\}]+\\}|(i|imath|jmath)(?![a-zA-Z]))");
   smatch sub;
   for (sregex_iterator itacc(par.begin(), par.end(), accre), end; itacc != end; ++itacc) {
     sub = *itacc;
@@ -1463,10 +1476,8 @@ class LatexInfo {
   void removeHead(KeyInfo&, int count=0);
 
  public:
- LatexInfo(string par, bool isPatternString) : entidx(-1), interval(isPatternString) {
-    interval.par = par;
-    interval.hasTitle = false;
-    interval.titleValue = "";
+ LatexInfo(string par, bool isPatternString) : entidx(-1), interval(isPatternString, par)
+  {
     buildKeys(isPatternString);
     entries = vector<KeyInfo>();
     buildEntries(isPatternString);