#include "BufferView.h"
#include "Counters.h"
#include "Encoding.h"
-#include "debug.h"
-#include "gettext.h"
+#include "support/debug.h"
+#include "support/gettext.h"
#include "Language.h"
#include "LaTeXFeatures.h"
#include "Layout.h"
#include "support/lstrings.h"
#include "support/textutils.h"
#include "support/convert.h"
-#include "support/unicode.h"
#include <boost/bind.hpp>
#include <boost/crc.hpp>
#include <stack>
#include <sstream>
+using namespace std;
+using namespace lyx::support;
namespace lyx {
-using lyx::support::contains;
-using lyx::support::rsplit;
-using support::subst;
-
-using std::distance;
-using std::endl;
-using std::list;
-using std::stack;
-using std::string;
-using std::ostream;
-using std::ostringstream;
-
ParagraphMetrics::ParagraphMetrics(Paragraph const & par): position_(-1), par_(&par)
{
}
-void ParagraphMetrics::computeRowSignature(Row & row,
- BufferParams const & bparams)
+size_t ParagraphMetrics::computeRowSignature(Row const & row,
+ BufferParams const & bparams) const
{
boost::crc_32_type crc;
for (pos_type i = row.pos(); i < row.endpos(); ++i) {
char_type const b[] = { par_->getChar(i) };
- crc.process_bytes(b, 1);
+ crc.process_bytes(b, sizeof(char_type));
if (bparams.trackChanges) {
Change change = par_->lookupChange(i);
char_type const b[] = { change.type };
+ // 1 byte is enough to encode Change::Type
crc.process_bytes(b, 1);
}
}
- row.setCrc(crc.checksum());
+
+ Dimension const & d = row.dimension();
+ char_type const b[] = { row.sel_beg, row.sel_end, d.wid, d.asc, d.des};
+ // Each of the variable to process is 4 bytes: 4x5 = 20
+ crc.process_bytes(b, 20);
+
+ return crc.checksum();
}