mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-24 17:36:14 -04:00
Changeset: Fix off-by-one bug in makeSplice
This commit is contained in:
parent
30d68df396
commit
748d661495
2 changed files with 8 additions and 1 deletions
|
@ -1493,7 +1493,7 @@ exports.identity = (N) => exports.pack(N, N, '', '');
|
|||
exports.makeSplice = (orig, start, ndel, ins, attribs, pool) => {
|
||||
if (start < 0) throw new RangeError(`start index must be non-negative (is ${start})`);
|
||||
if (ndel < 0) throw new RangeError(`characters to delete must be non-negative (is ${ndel})`);
|
||||
if (start >= orig.length) start = orig.length - 1;
|
||||
if (start > orig.length) start = orig.length;
|
||||
if (ndel > orig.length - start) ndel = orig.length - start;
|
||||
const deleted = orig.substring(start, start + ndel);
|
||||
const assem = exports.smartOpAssembler();
|
||||
|
|
|
@ -70,6 +70,13 @@ describe('easysync-other', function () {
|
|||
expect(t2).to.equal('a\nb\ncdef\n');
|
||||
});
|
||||
|
||||
it('makeSplice at the end', async function () {
|
||||
const orig = '123';
|
||||
const ins = '456';
|
||||
expect(Changeset.applyToText(Changeset.makeSplice(orig, orig.length, 0, ins), orig))
|
||||
.to.equal(`${orig}${ins}`);
|
||||
});
|
||||
|
||||
it('testToSplices', async function () {
|
||||
const cs = Changeset.checkRep('Z:z>9*0=1=4-3+9=1|1-4-4+1*0+a$123456789abcdefghijk');
|
||||
const correctSplices = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue