diff options
Diffstat (limited to 'sonar-channel')
-rw-r--r-- | sonar-channel/src/main/java/org/sonar/channel/CodeBuffer.java | 8 | ||||
-rw-r--r-- | sonar-channel/src/test/java/org/sonar/channel/CodeBufferTest.java | 4 |
2 files changed, 5 insertions, 7 deletions
diff --git a/sonar-channel/src/main/java/org/sonar/channel/CodeBuffer.java b/sonar-channel/src/main/java/org/sonar/channel/CodeBuffer.java index dbb28eb7b0b..25ad180b4b3 100644 --- a/sonar-channel/src/main/java/org/sonar/channel/CodeBuffer.java +++ b/sonar-channel/src/main/java/org/sonar/channel/CodeBuffer.java @@ -94,11 +94,9 @@ public class CodeBuffer implements CharSequence { } private void updateCursorPosition(int character) { - //see Java Language Specification : http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.4 - if (character == LF || character == CR) { - if ((lastChar != LF && lastChar != CR) || lastChar == character || lastChar == LF) { - cursor.line++; - } + // see Java Language Specification : http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.4 + if (character == LF || (character == CR && peek() != LF)) { + cursor.line++; cursor.column = 0; } else if (character == '\t') { cursor.column += tabWidth; diff --git a/sonar-channel/src/test/java/org/sonar/channel/CodeBufferTest.java b/sonar-channel/src/test/java/org/sonar/channel/CodeBufferTest.java index b028184c7c5..e5befb2efcb 100644 --- a/sonar-channel/src/test/java/org/sonar/channel/CodeBufferTest.java +++ b/sonar-channel/src/test/java/org/sonar/channel/CodeBufferTest.java @@ -84,8 +84,8 @@ public class CodeBufferTest { assertThat(reader.getLinePosition(), is(3)); assertThat((char) reader.pop(), is('s')); reader.pop(); // \r - assertThat(reader.getColumnPosition(), is(0)); - assertThat(reader.getLinePosition(), is(4)); + assertThat(reader.getColumnPosition(), is(2)); + assertThat(reader.getLinePosition(), is(3)); reader.pop(); // \n assertThat(reader.getColumnPosition(), is(0)); assertThat(reader.getLinePosition(), is(4)); |