From: Juergen Spitzmueller Date: Thu, 24 May 2018 15:38:10 +0000 (+0200) Subject: Consider required modules when checking for layout definitions in modules X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3403 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=8b4c76fb2465402dc48915b965de8a6f9a884795;p=features.git Consider required modules when checking for layout definitions in modules Fixes: #11156. --- diff --git a/src/tex2lyx/tex2lyx.cpp b/src/tex2lyx/tex2lyx.cpp index 8ae6073e01..89589ef706 100644 --- a/src/tex2lyx/tex2lyx.cpp +++ b/src/tex2lyx/tex2lyx.cpp @@ -386,13 +386,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 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; + } } } }