X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fchanges.h;h=dabfdf80e818293eeb4689fa6f23cc97677890e8;hb=e94889a041628203c50b66b9a4add63210de6928;hp=994e4584097927105045e9ee0127064c0f4c31a7;hpb=c9f9ba315c8e475ad47c64fef6c9c755dea3d55c;p=lyx.git diff --git a/src/changes.h b/src/changes.h index 994e458409..dabfdf80e8 100644 --- a/src/changes.h +++ b/src/changes.h @@ -72,11 +72,8 @@ public: /// mark the given change and adjust void record(Change, lyx::pos_type pos); - /// return the change type at the given position - Change::Type lookup(lyx::pos_type pos) const; - /// return the change at the given position - Change const lookupFull(lyx::pos_type pos) const; + Change const lookup(lyx::pos_type pos) const; /// return true if there is a change in the given range bool isChange(lyx::pos_type start, lyx::pos_type end) const; @@ -84,12 +81,14 @@ public: /// return true if there is a deleted or unchanged range contained bool isChangeEdited(lyx::pos_type start, lyx::pos_type end) const; - /// remove the given entry + /// remove the given entry. This implies that a character was + /// deleted at pos, and will adjust all range bounds past it void erase(lyx::pos_type pos); /// output latex to mark a transition between two changetypes /// returns length of text outputted - static int latexMarkChange(std::ostream & os, Change::Type old, Change::Type change); + static int latexMarkChange(std::ostream & os, Change::Type old, + Change::Type change, bool const & output); /// output .lyx file format for transitions between changes static void lyxMarkChange(std::ostream & os, int & column, @@ -108,7 +107,7 @@ private: bool contains(lyx::pos_type pos) const; // does this range contain pos, or can it be appended ? - bool loose_contains(lyx::pos_type pos) const; + bool containsOrPrecedes(lyx::pos_type pos) const; // is this range contained within r ? bool contained(Range const & r) const; @@ -133,22 +132,23 @@ private: typedef std::vector ChangeTable; - /// our table of changes + /// our table of changes, every row a range and change descriptor ChangeTable table_; /// change type for an empty paragraph Change::Type empty_type_; - /// handle a delete + /// handle a delete, either logical or physical (see erase) void del(Change change, ChangeTable::size_type pos); - /// handle an add + /// handle an add, adjusting range bounds past it void add(Change change, ChangeTable::size_type pos); - /// merge neighbouring ranges + /// merge neighbouring ranges, assuming that they are abutting + /// (as done by set()) void merge(); - /// consistency check + /// consistency check, needed before merge() void check() const; };