]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetInfo.cpp
Strip et al. for citation search
[lyx.git] / src / insets / InsetInfo.cpp
index 65b0d1285f52a889362aec7c40956945ea338a1e..46d656c817c9ad9d78a221f321867717e368c566 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "frontends/Application.h"
 
+#include "support/Changer.h"
 #include "support/convert.h"
 #include "support/debug.h"
 #include "support/docstream.h"
@@ -158,6 +159,8 @@ set<string> getTexFileList(string const & filename)
                getVectorFromString(file.fileContents("UTF-8"), from_ascii("\n"));
 
        // Normalise paths like /foo//bar ==> /foo/bar
+       // No "auto const &" because doc is modified later
+       // coverity[auto_causes_copy]
        for (auto doc : doclist) {
                doc = subst(doc, from_ascii("\r"), docstring());
                while (contains(doc, from_ascii("//")))
@@ -779,6 +782,12 @@ void InsetInfo::metrics(MetricsInfo & mi, Dimension & dim) const
 }
 
 
+void InsetInfo::draw(PainterInfo & pi, int x, int y) const
+{
+       Changer chg = changeVar(lyxrc.mark_foreign_language, false);
+       InsetCollapsible::draw(pi, x, y);
+}
+
 void InsetInfo::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted)
 
 {
@@ -977,7 +986,19 @@ void InsetInfo::build()
                if (initialized_)
                        break;
                // check in packages.lst
-               if (LaTeXFeatures::isAvailable(params_.name)) {
+               bool available;
+               // we also allow version check with version separated by blank
+               if (contains(params_.name, ' ')) {
+                       string name;
+                       string const version = split(params_.name, name, ' ');
+                       int const y = convert<int>(version.substr(0,4));
+                       int const m = convert<int>(version.substr(4,2));
+                       int const d = convert<int>(version.substr(6,2));
+                       available = LaTeXFeatures::isAvailableAtLeastFrom(name, y, m, d);
+               } else
+                       available = LaTeXFeatures::isAvailable(params_.name);
+
+               if (available) {
                        gui = _("yes");
                        info(from_ascii("yes"), params_.lang);
                } else {
@@ -1219,10 +1240,10 @@ void InsetInfo::build()
 }
 
 
-void InsetInfo::latex(otexstream & os, OutputParams const & runparams) const
+void InsetInfo::validate(LaTeXFeatures & features) const
 {
        const_cast<InsetInfo *>(this)->build();
-       InsetCollapsible::latex(os, runparams);
+       InsetCollapsible::validate(features);
 }