From 8960b6996d881c02b11650464da0524f5595f91e Mon Sep 17 00:00:00 2001 From: Randy Edmunds Date: Thu, 13 Mar 2014 12:43:43 -0700 Subject: [PATCH 1/3] don't retrieve tabSize pref until it's needed --- src/editor/Editor.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/editor/Editor.js b/src/editor/Editor.js index c1fdd9f1694..61b16c0285d 100644 --- a/src/editor/Editor.js +++ b/src/editor/Editor.js @@ -878,12 +878,15 @@ define(function (require, exports, module) { */ Editor.prototype.getColOffset = function (pos) { var line = this._codeMirror.getRange({line: pos.line, ch: 0}, pos), - tabSize = Editor.getTabSize(), + tabSize, column = 0, i; for (i = 0; i < line.length; i++) { if (line[i] === '\t') { + if (!tabSize) { + tabSize = Editor.getTabSize(); + } column += (tabSize - (column % tabSize)); } else { column++; From 3803e256c03613132a95a0983b1f79dc10d16340 Mon Sep 17 00:00:00 2001 From: Randy Edmunds Date: Fri, 14 Mar 2014 14:11:53 -0700 Subject: [PATCH 2/3] safer way to check if tabSize pref has been retrieved --- src/editor/Editor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/editor/Editor.js b/src/editor/Editor.js index 61b16c0285d..1fc493c6690 100644 --- a/src/editor/Editor.js +++ b/src/editor/Editor.js @@ -878,13 +878,13 @@ define(function (require, exports, module) { */ Editor.prototype.getColOffset = function (pos) { var line = this._codeMirror.getRange({line: pos.line, ch: 0}, pos), - tabSize, + tabSize = null, column = 0, i; for (i = 0; i < line.length; i++) { if (line[i] === '\t') { - if (!tabSize) { + if (tabSize === null) { tabSize = Editor.getTabSize(); } column += (tabSize - (column % tabSize)); From 17612b78f7554ceb4fd389c4374a0071f56d11d6 Mon Sep 17 00:00:00 2001 From: Randy Edmunds Date: Fri, 14 Mar 2014 15:28:01 -0700 Subject: [PATCH 3/3] protect against modulo zero, and negative tab size --- src/editor/Editor.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/editor/Editor.js b/src/editor/Editor.js index 1fc493c6690..03db6dfb6cd 100644 --- a/src/editor/Editor.js +++ b/src/editor/Editor.js @@ -887,7 +887,9 @@ define(function (require, exports, module) { if (tabSize === null) { tabSize = Editor.getTabSize(); } - column += (tabSize - (column % tabSize)); + if (tabSize > 0) { + column += (tabSize - (column % tabSize)); + } } else { column++; }