check-code: make repquote distinguish more characters for exact detection
This patch makes repquote() distinguish more characters below, as a
preparation for exact detection in subsequent patch.
- "%" as "%"
- "\\" as "b"(ackslash)
- "*" as "A"(sterisk)
- "+" as "P"(lus)
- "-" as "M"(inus)
Characters other than "%" don't use itself as replacement, because
they are treated as special ones in regexp.
--- a/contrib/check-code.py Tue May 31 21:02:30 2016 +0900
+++ b/contrib/check-code.py Tue May 31 21:02:30 2016 +0900
@@ -53,7 +53,8 @@
def repquote(m):
# check "rules depending on implementation of repquote()" in each
# patterns (especially pypats), before changing this function
- fixedmap = {' ': ' ', '\n': '\n', '.': 'p', ':': 'q'}
+ fixedmap = {' ': ' ', '\n': '\n', '.': 'p', ':': 'q',
+ '%': '%', '\\': 'b', '*': 'A', '+': 'P', '-': 'M'}
def encodechr(i):
if i > 255:
return 'u'
@@ -326,7 +327,8 @@
(r'\.next\(\)', "don't use .next(), use next(...)"),
# rules depending on implementation of repquote()
- (r' x+[xpqo][\'"]\n\s+[\'"]x', 'string join across lines with no space'),
+ (r' x+[xpqo%APM][\'"]\n\s+[\'"]x',
+ 'string join across lines with no space'),
(r'ui\.(status|progress|write|note|warn)\([\'\"]x',
"missing _() in ui message (use () to hide false-positives)"),
],
--- a/tests/test-contrib-check-code.t Tue May 31 21:02:30 2016 +0900
+++ b/tests/test-contrib-check-code.t Tue May 31 21:02:30 2016 +0900
@@ -256,6 +256,10 @@
> 'bar foo.'
> 'bar foo:'
> 'bar foo@'
+ > 'bar foo%'
+ > 'bar foo*'
+ > 'bar foo+'
+ > 'bar foo-'
> 'bar')
> EOF
$ "$check_code" stringjoin.py
@@ -271,4 +275,16 @@
stringjoin.py:4:
> 'bar foo@'
string join across lines with no space
+ stringjoin.py:5:
+ > 'bar foo%'
+ string join across lines with no space
+ stringjoin.py:6:
+ > 'bar foo*'
+ string join across lines with no space
+ stringjoin.py:7:
+ > 'bar foo+'
+ string join across lines with no space
+ stringjoin.py:8:
+ > 'bar foo-'
+ string join across lines with no space
[1]