Mercurial > public > mercurial-scm > hg-stable
diff contrib/check-code.py @ 20869:9658a79968c6 stable
i18n: fix "% inside _()" problems
Before this patch, "contrib/check-code.py" can't detect these
problems, because the regexp pattern to detect "% inside _()" doesn't
suppose the case that format string consists of multiple string
components concatenated implicitly or explicitly,
This patch does below for that regexp pattern to detect "% inside _()"
problems in such case.
- put "+" into separator part ("[ \t\n]") for explicit concatenation
("...." + "...." style)
- enclose "component and separator" part by "(?:....)+" for
concatenation itself ("...." "...." or "...." + "....")
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 01 Apr 2014 02:46:03 +0900 |
parents | 5db105f216c3 |
children | 6500a2eebee8 |
line wrap: on
line diff
--- a/contrib/check-code.py Tue Apr 01 02:46:03 2014 +0900 +++ b/contrib/check-code.py Tue Apr 01 02:46:03 2014 +0900 @@ -198,8 +198,8 @@ (r'\s<>\s', '<> operator is not available in Python 3+, use !='), (r'^\s*\t', "don't use tabs"), (r'\S;\s*\n', "semicolon"), - (r'[^_]_\("[^"]+"[ \t\n]*%', "don't use % inside _()"), - (r"[^_]_\('[^']+'[ \t\n]*%", "don't use % inside _()"), + (r'[^_]_\((?:"[^"]+"[ \t\n+]*)+%', "don't use % inside _()"), + (r"[^_]_\((?:'[^']+'[ \t\n+]*)+%", "don't use % inside _()"), (r'(\w|\)),\w', "missing whitespace after ,"), (r'(\w|\))[+/*\-<>]\w', "missing whitespace in expression"), (r'^\s+(\w|\.)+=\w[^,()\n]*$', "missing whitespace in assignment"),