]> git.lyx.org Git - lyx.git/blobdiff - src/Compare.cpp
* doxy
[lyx.git] / src / Compare.cpp
index 92c5cf20bb97e91b69de664d51c42137528d1ef0..32f404736c20e20a0ab92e0b2903acb4efe1aff0 100644 (file)
@@ -525,6 +525,7 @@ void Compare::Impl::furthestDpathKdiagonal(int D, int k,
        // Where do we take the step from ?
        int const kk = vertical_step ? k + 1 : k - 1;
        DocPair p(op[kk], np[kk]);
+       DocPair const s(os[kk], ns[kk]);
 
        // If D==0 we simulate a vertical step from (0,-1) by doing nothing.
        if (D != 0) {
@@ -546,8 +547,8 @@ void Compare::Impl::furthestDpathKdiagonal(int D, int k,
                ns[k] = p.n;
        } else {
                // Copy last snake from the previous step
-               os[k] = os[kk];
-               ns[k] = ns[kk];
+               os[k] = s.o;
+               ns[k] = s.n;
        }
 
        //Record new position
@@ -690,7 +691,9 @@ bool Compare::Impl::diff(Buffer const * new_buf, Buffer const * old_buf,
        processSnake(snake);
        
        // Start the recursive algorithm
-       diff_i(rp);
+       DocRangePair rp_new(from, rp.to());
+       if (!rp_new.o.empty() || !rp_new.n.empty())
+               diff_i(rp_new);
 
        for (pit_type p = 0; p < (pit_type)dest_pars_->size(); ++p) {
                (*dest_pars_)[p].setBuffer(const_cast<Buffer &>(*dest_buf));