Chromium Code Reviews| Index: tools/presubmit.py | 
| =================================================================== | 
| --- tools/presubmit.py (revision 15486) | 
| +++ tools/presubmit.py (working copy) | 
| @@ -331,6 +331,14 @@ | 
| 'gnuplot-4.6.3-emscripten.js'] | 
| IGNORE_TABS = IGNORE_COPYRIGHTS + ['unicode-test.js', 'html-comments.js'] | 
| + def EndOfDeclaration(self, line): | 
| + return line == "}" or line == "};" | 
| + | 
| + def StartOfDeclaration(self, line): | 
| + return line.find("//") == 0 or \ | 
| + line.find("/*") == 0 or \ | 
| + line.find(") {") != -1 | 
| + | 
| def ProcessContents(self, name, contents): | 
| result = True | 
| base = basename(name) | 
| @@ -342,7 +350,6 @@ | 
| if not COPYRIGHT_HEADER_PATTERN.search(contents): | 
| print "%s is missing a correct copyright header." % name | 
| result = False | 
| - ext = base.split('.').pop() | 
| if ' \n' in contents or contents.endswith(' '): | 
| line = 0 | 
| lines = [] | 
| @@ -358,6 +365,28 @@ | 
| else: | 
| print "%s has trailing whitespaces in line %s." % (name, linenumbers) | 
| result = False | 
| + # Check two empty lines between declarations. | 
| + if name.endswith(".cc"): | 
| + line = 0 | 
| + lines = [] | 
| + parts = contents.split('\n') | 
| + while line < len(parts) - 2: | 
| + if self.EndOfDeclaration(parts[line]): | 
| + if self.StartOfDeclaration(parts[line + 1]): | 
| + lines.append(str(line + 1)) | 
| + elif parts[line + 1] == "" and \ | 
| + self.StartOfDeclaration(parts[line + 2]): | 
| + lines.append(str(line + 1)) | 
| + line += 1 | 
| + if len(lines) >= 1: | 
| + linenumbers = ', '.join(lines) | 
| + if len(lines) > 1: | 
| + print "{0} does not have two empty lines between declarations " \ | 
| + "in lines {1}.".format(name, linenumbers) | 
| 
 
Yang
2013/07/04 16:33:00
I think for consistency we could use
"%s ... %s .
 
haitao.feng
2013/07/05 05:16:37
Done.
 
 | 
| + else: | 
| + print "{0} does not have two empty lines between declarations " \ | 
| + "in line {1}.".format(name, linenumbers) | 
| + result = False | 
| return result | 
| def ProcessFiles(self, files, path): |