X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCompare.cpp;h=c2a01a64df8a189b0e85ed73a7877a6cf1823500;hb=2a1ab8b6f04a59b12ac04b83c02feb1104c39e98;hp=5831f2211114ef6c78e7a313f9e4d3dd1c2958cb;hpb=6b2232a29c682d8e62d1d2b963bb1a70bee4330b;p=lyx.git diff --git a/src/Compare.cpp b/src/Compare.cpp index 5831f22111..c2a01a64df 100644 --- a/src/Compare.cpp +++ b/src/Compare.cpp @@ -12,6 +12,7 @@ #include "Compare.h" +#include "Author.h" #include "BufferParams.h" #include "Changes.h" #include "Font.h" @@ -269,7 +270,7 @@ private: SnakeResult retrieveMiddleSnake(int k, int D, Direction direction, DocPair & middle_snake); - /// Find the the furthest reaching D-path (number of horizontal + /// Find the furthest reaching D-path (number of horizontal /// and vertical steps; differences between the old and new /// document) in the k-diagonal (vertical minus horizontal steps). void furthestDpathKdiagonal(int D, int k, @@ -375,10 +376,17 @@ void Compare::run() if (!dest_buffer || !new_buffer || !old_buffer) return; - // Copy the buffer params to the new buffer + // Copy the buffer params to the destination buffer dest_buffer->params() = options_.settings_from_new ? new_buffer->params() : old_buffer->params(); + // Copy extra authors to the destination buffer + AuthorList const & extra_authors = options_.settings_from_new ? + old_buffer->params().authors() : new_buffer->params().authors(); + AuthorList::Authors::const_iterator it = extra_authors.begin(); + for (; it != extra_authors.end(); ++it) + dest_buffer->params().authors().record(*it); + doStatusMessage(); // do the real work @@ -602,7 +610,7 @@ Compare::Impl::SnakeResult Compare::Impl::retrieveMiddleSnake( if (os[k].empty() && os_r[kk].empty()) { // No, there is no snake at all, in which case // the length of the shortest edit script is M+N. - LASSERT(2 * D - odd_offset_ == M_ + N_, /**/); + LATTEST(2 * D - odd_offset_ == M_ + N_); return NoSnake; } @@ -822,7 +830,7 @@ void Compare::Impl::processSnake(DocRangePair const & rp) pit_type const pit = it.o.pit() - rp.o.from.pit(); pos_type const pos = pit ? it.o.pos() : it.o.pos() - rp.o.from.pos(); inset = pars[pit].getInset(pos); - LASSERT(inset, /**/); + LASSERT(inset, continue); diffInset(inset, it); } }