]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
scons/SConstruct: remove non-existent path to make "update_po" work
[lyx.git] / src / Buffer.cpp
index b94a7278be7de001def01065ace5fdd4fe2a665d..566105a12850182dfe52ce6ec4795edf8002ae30 100644 (file)
@@ -156,7 +156,7 @@ namespace fs = boost::filesystem;
 
 namespace {
 
-int const LYX_FORMAT = 295; //Uwe: htmlurl, href
+int const LYX_FORMAT = 296; //RGH: InsetInclude changes
 
 } // namespace anon
 
@@ -1806,6 +1806,7 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to,
        // Check if the label 'from' appears more than once
        vector<docstring> labels;
 
+       string paramName;
        if (code == CITE_CODE) {
                BiblioInfo keys;
                keys.fillWithBibKeys(this);
@@ -1815,8 +1816,11 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to,
                for (; bit != bend; ++bit)
                        // FIXME UNICODE
                        labels.push_back(bit->first);
-       } else
+               paramName = "key";
+       } else {
                getLabelList(labels);
+               paramName = "reference";
+       }
 
        if (std::count(labels.begin(), labels.end(), from) > 1)
                return;
@@ -1824,7 +1828,9 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to,
        for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) {
                if (it->lyxCode() == code) {
                        InsetCommand & inset = static_cast<InsetCommand &>(*it);
-                       inset.replaceContents(to_utf8(from), to_utf8(to));
+                       docstring const oldValue = inset.getParam(paramName);
+                       if (oldValue == from)
+                               inset.setParam(paramName, to);
                }
        }
 }
@@ -2173,7 +2179,7 @@ void Buffer::loadChildDocuments() const
        for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) {
                if (it->lyxCode() != INCLUDE_CODE)
                        continue;
-               InsetInclude const & inset = static_cast<InsetInclude const &>(*it);
+               InsetCommand const & inset = static_cast<InsetCommand const &>(*it);
                InsetCommandParams const & ip = inset.params();
                Buffer * child = loadIfNeeded(*this, ip);
                if (!child)