summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Xicluna <florent.xicluna@gmail.com>2014-12-16 20:51:07 +0100
committerIan Lee <IanLee1521@gmail.com>2014-12-18 00:39:05 -0800
commit497f1db5d142ddb891504d2513d52c5f195c05ac (patch)
tree860a2cb5c331ee0e5af44d5c93f62386fecc27bb
parente73ce7d2001f9cd3d1d6acdd1040b7e6abca77fe (diff)
downloadpep8-issue319.tar.gz
Do not skip physical checks if the newline is escaped; issue #319issue319
-rw-r--r--CHANGES.txt2
-rwxr-xr-xpep8.py12
-rw-r--r--testsuite/E50.py14
-rw-r--r--testsuite/W19.py2
4 files changed, 22 insertions, 8 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index d53fb70..d0ae802 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -43,6 +43,8 @@ Bug fixes:
* Fix false positive E711/E712/E713. (Issues #330 and #336)
+* Do not skip physical checks if the newline is escaped. (Issue #319)
+
1.5.7 (2014-05-29)
------------------
diff --git a/pep8.py b/pep8.py
index bb46c22..914d7fd 100755
--- a/pep8.py
+++ b/pep8.py
@@ -1238,14 +1238,12 @@ def filename_match(filename, patterns, default=True):
return any(fnmatch(filename, pattern) for pattern in patterns)
+def _is_eol_token(token):
+ return token[0] in NEWLINE or token[4][token[3][1]:].lstrip() == '\\\n'
if COMMENT_WITH_NL:
- def _is_eol_token(token):
- return (token[0] in NEWLINE or
- (token[0] == tokenize.COMMENT and token[1] == token[4]))
-else:
- def _is_eol_token(token):
- return token[0] in NEWLINE
-
+ def _is_eol_token(token, _eol_token=_is_eol_token):
+ return _eol_token(token) or (token[0] == tokenize.COMMENT and
+ token[1] == token[4])
##############################################################################
# Framework to run all checks
diff --git a/testsuite/E50.py b/testsuite/E50.py
index 31ad6b9..f60f389 100644
--- a/testsuite/E50.py
+++ b/testsuite/E50.py
@@ -1,5 +1,19 @@
#: E501
a = '12345678901234567890123456789012345678901234567890123456789012345678901234567890'
+#: E501
+a = '1234567890123456789012345678901234567890123456789012345678901234567890' or \
+ 6
+#: E501
+a = 7 or \
+ '1234567890123456789012345678901234567890123456789012345678901234567890' or \
+ 6
+#: E501 E501
+a = 7 or \
+ '1234567890123456789012345678901234567890123456789012345678901234567890' or \
+ '1234567890123456789012345678901234567890123456789012345678901234567890' or \
+ 6
+#: E501
+a = '1234567890123456789012345678901234567890123456789012345678901234567890' # \
#: E502
a = ('123456789012345678901234567890123456789012345678901234567890123456789' \
'01234567890')
diff --git a/testsuite/W19.py b/testsuite/W19.py
index edbb1f0..afdfb76 100644
--- a/testsuite/W19.py
+++ b/testsuite/W19.py
@@ -86,7 +86,7 @@ if (a == 2 or
b == """abc def ghi
jkl mno"""):
return True
-#: E101 W191
+#: W191:2:1 W191:3:1 E101:3:2
if length > options.max_line_length:
return options.max_line_length, \
"E501 line too long (%d characters)" % length