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 "...." + "....")
This commit is contained in:
FUJIWARA Katsunori 2014-04-01 02:46:03 +09:00
parent 01d8b27701
commit 0eed53de6c
4 changed files with 5 additions and 5 deletions

View File

@ -198,8 +198,8 @@ pypats = [
(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"),

View File

@ -344,7 +344,7 @@ def reposetup(ui, repo):
continue
if inconsistenteol(data):
raise util.Abort(_("inconsistent newline style "
"in %s\n" % f))
"in %s\n") % f)
return super(eolrepo, self).commitctx(ctx, error)
repo.__class__ = eolrepo
repo._hgcleardirstate()

View File

@ -711,7 +711,7 @@ class patchfile(object):
if self.exists and self.create:
if self.copysource:
self.ui.warn(_("cannot create %s: destination already "
"exists\n" % self.fname))
"exists\n") % self.fname)
else:
self.ui.warn(_("file %s already exists\n") % self.fname)
self.rej.append(h)

View File

@ -1021,7 +1021,7 @@ class svnsubrepo(abstractsubrepo):
def remove(self):
if self.dirty():
self._ui.warn(_('not removing repo %s because '
'it has changes.\n' % self._path))
'it has changes.\n') % self._path)
return
self._ui.note(_('removing subrepo %s\n') % self._path)