diff --git a/src/node/db/Pad.js b/src/node/db/Pad.js index 538476002..e70628b7a 100644 --- a/src/node/db/Pad.js +++ b/src/node/db/Pad.js @@ -290,7 +290,7 @@ Pad.prototype.setText = function setText(newText) { var oldText = this.text(); //create the changeset - var changeset = Changeset.makeSplice(oldText, 0, oldText.length-1, newText); + var changeset = Changeset.makeSplice(oldText, 0, oldText.length, newText); //append the changeset this.appendRevision(changeset); diff --git a/src/static/js/Changeset.js b/src/static/js/Changeset.js index df180f9cf..04a055147 100644 --- a/src/static/js/Changeset.js +++ b/src/static/js/Changeset.js @@ -260,13 +260,13 @@ exports.checkRep = function (cs) { break; case '-': oldPos += o.chars; - exports.assert(oldPos < oldLen, oldPos, " >= ", oldLen, " in ", cs); + exports.assert(oldPos <= oldLen, oldPos, " > ", oldLen, " in ", cs); break; case '+': { calcNewLen += o.chars; numInserted += o.chars; - exports.assert(calcNewLen < newLen, calcNewLen, " >= ", newLen, " in ", cs); + exports.assert(calcNewLen <= newLen, calcNewLen, " > ", newLen, " in ", cs); break; } } @@ -1408,8 +1408,8 @@ exports.makeSplice = function (oldFullText, spliceStart, numRemoved, newText, op if (spliceStart >= oldLen) { spliceStart = oldLen - 1; } - if (numRemoved > oldFullText.length - spliceStart - 1) { - numRemoved = oldFullText.length - spliceStart - 1; + if (numRemoved > oldFullText.length - spliceStart) { + numRemoved = oldFullText.length - spliceStart; } var oldText = oldFullText.substring(spliceStart, spliceStart + numRemoved); var newLen = oldLen + newText.length - oldText.length;