commit 3efd64696ffe1422bec7a9d383ff5fabe627b7b8
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu May 24 17:38:10 2018 +0200

    Consider required modules when checking for layout definitions in modules
    
    Fixes: #11156.
    (cherry picked from commit 8b4c76fb2465402dc48915b965de8a6f9a884795)
---
 src/tex2lyx/tex2lyx.cpp |   26 +++++++++++++++++++-------
 status.23x              |    3 +++
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/tex2lyx/tex2lyx.cpp b/src/tex2lyx/tex2lyx.cpp
index 416f126..e6761db 100644
--- a/src/tex2lyx/tex2lyx.cpp
+++ b/src/tex2lyx/tex2lyx.cpp
@@ -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;
+                               }
                        }
                }
        }
diff --git a/status.23x b/status.23x
index adc4947..6a043fe 100644
--- a/status.23x
+++ b/status.23x
@@ -94,6 +94,9 @@ What's new
 
 * TEX2LYX
 
+-  Consider required modules when checking for layout definitions in modules
+   (bug 11156).
+
 
 
 * ADVANCED FIND AND REPLACE

Reply via email to