diff options
author | Xavid <xavid@mit.edu> | 2015-06-30 04:47:55 -0400 |
---|---|---|
committer | Xavid <xavid@mit.edu> | 2015-06-30 04:47:55 -0400 |
commit | ad137fa4c876f9d7dc2d8113d8bcef9b9425ce0c (patch) | |
tree | 74f82ba67999d1dd718802fbe1dbdccb302d88b6 /src | |
parent | d803ac128ecae61402d98bdf14f547c5fd52a1c4 (diff) | |
download | etherpad-lite-ad137fa4c876f9d7dc2d8113d8bcef9b9425ce0c.zip |
Restore newline-adding to setText() if passed string does not end in '\n'.
Add a test for the ending-in-'\n' case and update tests for the other case.
Diffstat (limited to 'src')
-rw-r--r-- | src/node/db/Pad.js | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/node/db/Pad.js b/src/node/db/Pad.js index 8978d253..eb6a3ed1 100644 --- a/src/node/db/Pad.js +++ b/src/node/db/Pad.js @@ -290,7 +290,14 @@ Pad.prototype.setText = function setText(newText) { var oldText = this.text(); //create the changeset - var changeset = Changeset.makeSplice(oldText, 0, oldText.length, newText); + // We want to ensure the pad still ends with a \n, but otherwise keep + // getText() and setText() consistent. + var changeset; + if (newText[newText.length - 1] == '\n') { + changeset = Changeset.makeSplice(oldText, 0, oldText.length, newText); + } else { + changeset = Changeset.makeSplice(oldText, 0, oldText.length-1, newText); + } //append the changeset this.appendRevision(changeset); |