Author: sebb Date: Wed Mar 28 13:40:46 2012 New Revision: 1306321 URL: http://svn.apache.org/viewvc?rev=1306321&view=rev Log: Add method for detecting start of line Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVLexer.java Modified: commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVLexer.java URL: http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVLexer.java?rev=1306321&r1=1306320&r2=1306321&view=diff ============================================================================== --- commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVLexer.java (original) +++ commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVLexer.java Wed Mar 28 13:40:46 2012 @@ -49,6 +49,13 @@ class CSVLexer extends Lexer { * is to call 'readAgain' on the stream... */ int c = in.read(); + + if ((lastChar == '\n' || lastChar == '\r' || lastChar == ExtendedBufferedReader.UNDEFINED) && isCommentStart(c)) { + in.readLine(); + tkn.type = COMMENT; + return tkn; + } + boolean eol = isEndOfLine(c); c = in.readAgain(); @@ -86,12 +93,8 @@ class CSVLexer extends Lexer { } } - // ok, start of token reached: comment, encapsulated, or token - if (isCommentStart(c)) { // TODO should only match at start of line - // ignore everything till end of line and continue (incr linecount) - in.readLine(); - tkn.type = COMMENT; - } else if (isDelimiter(c)) { + // ok, start of token reached: encapsulated, or token + if (isDelimiter(c)) { // empty token return TOKEN("") tkn.type = TOKEN; } else if (eol) {