}
+bool Changes::isDeleted(pos_type start, pos_type end) const
+{
+ ChangeTable::const_iterator it = table_.begin();
+ ChangeTable::const_iterator const itend = table_.end();
+
+ for (; it != itend; ++it) {
+ if (it->range.contains(Range(start, end))) {
+ LYXERR(Debug::CHANGES, "range ("
+ << start << ", " << end << ") fully contains ("
+ << it->range.start << ", " << it->range.end
+ << ") of type " << it->change.type);
+ return it->change.type == Change::DELETED;
+ }
+ }
+ return false;
+}
+
+
bool Changes::isChanged(pos_type const start, pos_type const end) const
{
ChangeTable::const_iterator it = table_.begin();
}
-void Changes::lyxMarkChange(ostream & os, int & column,
+void Changes::lyxMarkChange(ostream & os, BufferParams const & bparams, int & column,
Change const & old, Change const & change)
{
if (old == change)
column = 0;
+ int const buffer_id = bparams.authors().get(change.author).buffer_id();
+
switch (change.type) {
case Change::UNCHANGED:
os << "\n\\change_unchanged\n";
break;
case Change::DELETED: {
- os << "\n\\change_deleted " << change.author
+ os << "\n\\change_deleted " << buffer_id
<< " " << change.changetime << "\n";
break;
}
case Change::INSERTED: {
- os << "\n\\change_inserted " << change.author
+ os << "\n\\change_inserted " << buffer_id
<< " " << change.changetime << "\n";
break;
}