diff -r d0ae5b8f80dc -r 844f72885fb9 contrib/check-code.py --- a/contrib/check-code.py Wed Jun 22 21:30:49 2016 +0100 +++ b/contrib/check-code.py Tue Jun 21 00:50:39 2016 +0900 @@ -329,7 +329,20 @@ # rules depending on implementation of repquote() (r' x+[xpqo%APM][\'"]\n\s+[\'"]x', 'string join across lines with no space'), - (r'ui\.(status|progress|write|note|warn)\([\'\"]x', + (r'''(?x)ui\.(status|progress|write|note|warn)\( + [ \t\n#]* + (?# any strings/comments might precede a string, which + # contains translatable message) + ((['"]|\'\'\'|""")[ \npq%bAPMxno]*(['"]|\'\'\'|""")[ \t\n#]+)* + (?# sequence consisting of below might precede translatable message + # - formatting string: "% 10s", "%05d", "% -3.2f", "%*s", "%%" ... + # - escaped character: "\\", "\n", "\0" ... + # - character other than '%', 'b' as '\', and 'x' as alphabet) + (['"]|\'\'\'|""") + ((%([ n]?[PM]?([np]+|A))?x)|%%|b[bnx]|[ \nnpqAPMo])*x + (?# this regexp can't use [^...] style, + # because _preparepats forcibly adds "\n" into [^...], + # even though this regexp wants match it against "\n")''', "missing _() in ui message (use () to hide false-positives)"), ], # warnings