]> git.lyx.org Git - features.git/commitdiff
Output arguments required by arguments with default or preset arg
authorJuergen Spitzmueller <spitz@lyx.org>
Wed, 21 May 2014 11:12:14 +0000 (13:12 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Wed, 21 May 2014 11:12:14 +0000 (13:12 +0200)
Fixes: #9128
src/output_latex.cpp

index 9f65409b66e9df712f0d2900ed75a8cc8fc90778..1cf63fbe0bef41fa19521dee19bb544479e739d8 100644 (file)
@@ -321,6 +321,18 @@ void getArgInsets(otexstream & os, OutputParams const & runparams, Layout::LaTeX
        if (argnr == 0)
                return;
 
+       // Default and preset args are always output, so if they require
+       // other arguments, consider this.
+       Layout::LaTeXArgMap::const_iterator lit = latexargs.begin();
+       Layout::LaTeXArgMap::const_iterator const lend = latexargs.end();
+       for (; lit != lend; ++lit) {
+               Layout::latexarg arg = (*lit).second;
+               if ((!arg.presetarg.empty() || !arg.defaultarg.empty()) && !arg.requires.empty()) {
+                               vector<string> req = getVectorFromString(arg.requires);
+                               required.insert(required.end(), req.begin(), req.end());
+                       }
+       }
+
        for (unsigned int i = 1; i <= argnr; ++i) {
                map<int, InsetArgument const *>::const_iterator lit = ilist.find(i);
                bool inserted = false;