diff --git a/lib/ace/document.js b/lib/ace/document.js index a60ed0e9..0fb91209 100644 --- a/lib/ace/document.js +++ b/lib/ace/document.js @@ -231,15 +231,15 @@ var Document = function(text) { **/ this.getTextRange = function(range) { if (range.start.row == range.end.row) { - return this.$lines[range.start.row].substring(range.start.column, - range.end.column); - } - else { - var lines = this.getLines(range.start.row+1, range.end.row-1); - lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column)); - lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column)); - return lines.join(this.getNewLineCharacter()); + return this.$lines[range.start.row] + .substring(range.start.column, range.end.column); } + var lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + return lines.join(this.getNewLineCharacter()); }; this.$clipPosition = function(position) {