]> git.lyx.org Git - lyx.git/commitdiff
Consider required modules when checking for layout definitions in modules
authorJuergen Spitzmueller <spitz@lyx.org>
Thu, 24 May 2018 15:38:10 +0000 (17:38 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 9 Sep 2018 10:25:57 +0000 (12:25 +0200)
Fixes: #11156.
(cherry picked from commit 8b4c76fb2465402dc48915b965de8a6f9a884795)

src/tex2lyx/tex2lyx.cpp
status.23x

index 416f1268f3932ba01a83582e2f525d1fbd7b2722..e6761dbc56309d3adc7844161865a9634d91a47f 100644 (file)
@@ -387,13 +387,25 @@ bool checkModule(string const & name, bool command)
                                add = true;
                }
                if (add) {
-                       FileName layout_file = libFileSearch("layouts", module, "module");
-                       if (textclass.read(layout_file, TextClass::MODULE)) {
-                               used_modules.push_back(module);
-                               // speed up further searches:
-                               // the module does not need to be checked anymore.
-                               modules.erase(it);
-                               return true;
+                       vector<string> v;
+                       LayoutModuleList mods;
+                       // addModule is necessary in order to catch required modules
+                       // as well (see #11156)
+                       if (!addModule(module, baseClass, mods, v))
+                               return false;
+                       for (auto const & mod : mods) {
+                               if (!used_modules.moduleCanBeAdded(mod, &baseClass))
+                                       return false;
+                               FileName layout_file = libFileSearch("layouts", mod, "module");
+                               if (textclass.read(layout_file, TextClass::MODULE)) {
+                                       used_modules.push_back(mod);
+                                       // speed up further searches:
+                                       // the module does not need to be checked anymore.
+                                       ModuleMap::iterator const it = modules.find(mod);
+                                       if (it != modules.end())
+                                               modules.erase(it);
+                                       return true;
+                               }
                        }
                }
        }
index adc4947050213ef1c514254a7b0bbf438f7a9812..6a043fe363fc46fb9f3905c5262f639403981fb2 100644 (file)
@@ -94,6 +94,9 @@ What's new
 
 * TEX2LYX
 
+-  Consider required modules when checking for layout definitions in modules
+   (bug 11156).
+
 
 
 * ADVANCED FIND AND REPLACE