]> git.lyx.org Git - features.git/commitdiff
Consider sub-subfiles on log file parsing.
authorJuergen Spitzmueller <spitz@lyx.org>
Sat, 14 Apr 2018 12:33:21 +0000 (14:33 +0200)
committerRichard Heck <rgheck@lyx.org>
Sun, 15 Apr 2018 04:04:40 +0000 (00:04 -0400)
These are listed as (subfile.ext (sub-subfile.ext))

Fixes: #11112
(cherry picked from commit 1e1800a21aac99bb6e6044e1c1e11e3f88d198dd)

src/LaTeX.cpp
status.23x

index 753d1966e0f5ab7c03395c37b1ce5be245944d38..df20f7b285bb999fc579674b6c03390ee3ea4cce 100644 (file)
@@ -1081,8 +1081,8 @@ bool completeFilename(string const & ff, DepTable & head)
 }
 
 
-int iterateLine(string const & token, regex const & reg, string const & closing,
-               int fragment_pos, DepTable & head)
+int iterateLine(string const & token, regex const & reg, string const & opening,
+               string const & closing, int fragment_pos, DepTable & head)
 {
        smatch what;
        string::const_iterator first = token.begin();
@@ -1099,6 +1099,15 @@ int iterateLine(string const & token, regex const & reg, string const & closing,
                                // since we had a closing bracket,
                                // do not investigate further
                                fragment = false;
+                       } else if (what.str(2) == opening) {
+                               // if we have another opening bracket,
+                               // we might have a nested file chain
+                               // as is (file.ext (subfile.ext))
+                               fragment = !handleFoundFile(rtrim(what.str(1)), head);
+                               // decrease first position by one in order to
+                               // consider the opening delimiter on next iteration
+                               if (first > token.begin())
+                                       --first;
                        } else
                                // if we have no closing bracket,
                                // try to handle as file nevertheless
@@ -1282,7 +1291,7 @@ void LaTeX::deplog(DepTable & head)
                if (regex_match(token, sub, reg5)) {
                        // search for strings in <...>
                        static regex const reg5_1("<([^>]+)(.)");
-                       fragment_pos = iterateLine(token, reg5_1, ">",
+                       fragment_pos = iterateLine(token, reg5_1, "<", ">",
                                                   fragment_pos, head);
                        fragment = (fragment_pos != -1);
                }
@@ -1295,7 +1304,7 @@ void LaTeX::deplog(DepTable & head)
                if (regex_match(token, sub, reg6)) {
                        // search for strings in (...)
                        static regex const reg6_1("\\(([^()]+)(.)");
-                       fragment_pos = iterateLine(token, reg6_1, ")",
+                       fragment_pos = iterateLine(token, reg6_1, "(", ")",
                                                   fragment_pos, head);
                        fragment = (fragment_pos != -1);
                }
index 903ce7eedb30c614e8619a9b66a9d3e31952d514..68efcd7455fdddd7e6288963a4bb97a649e682b7 100644 (file)
@@ -130,6 +130,8 @@ What's new
 
 - Load hyperref with a suitable driver (bug 6418).
 
+- Recompile grandchildren when they have updated (bug 11112).
+
 
 * LYX2LYX