]> git.lyx.org Git - features.git/commitdiff
Compare: Add the authors from the 'other' document
authorVincent van Ravesteijn <vfr@lyx.org>
Fri, 7 Feb 2014 13:06:39 +0000 (14:06 +0100)
committerVincent van Ravesteijn <vfr@lyx.org>
Fri, 7 Feb 2014 22:14:36 +0000 (23:14 +0100)
Otherwise the resulting document may contain references to authors that are not present in the author list, which results in a crash.

Fixes-bug: #8769

src/Compare.cpp

index 303a430b30b25f2decab9415ef1bf4f112c91766..1d72ebfd31e6e1d7f884fad8a38cac9715de3ff8 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "Compare.h"
 
+#include "Author.h"
 #include "BufferParams.h"
 #include "Changes.h"
 #include "Font.h"
@@ -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