From 77d532bd512afb34d14ccc412fcdfbe800becfcc Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Fri, 7 Feb 2014 14:06:39 +0100 Subject: [PATCH] Compare: Add the authors from the 'other' document 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 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Compare.cpp b/src/Compare.cpp index 303a430b30..1d72ebfd31 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" @@ -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