Fix bug with CRLF in new-lines and require-starting-space
Pound-signs followed by a lone CRLF should not raise if require-starting-space is specified. If require-starting-space is true, *and* either: - new-lines: disbale, or - newlines: type: dos is specified, a line with `#\r` or `#\r\n` should not raise a false positive. This commit also uses a Set for O(1) membership testing and uses the correct escape sequence for the nul byte. If we find a CRLF when looking for Unix newlines, yamllint should always raise, regardless of logic with require-starting-space. Closes: Issue #171.
This commit is contained in:
@@ -97,7 +97,9 @@ def check(conf, comment):
|
||||
comment.column_no == 1 and
|
||||
re.match(r'^!\S', comment.buffer[text_start:])):
|
||||
return
|
||||
elif comment.buffer[text_start] not in (' ', '\n', '\0'):
|
||||
# We can test for both \r and \r\n just by checking first char
|
||||
# \r itself is a valid newline on some older OS.
|
||||
elif comment.buffer[text_start] not in {' ', '\n', '\r', '\x00'}:
|
||||
column = comment.column_no + text_start - comment.pointer
|
||||
yield LintProblem(comment.line_no,
|
||||
column,
|
||||
|
||||
Reference in New Issue
Block a user