Tweaked webrtc_reformat.
Fixed variable names such as maskByte and stuff within brackets.
Fixed bug where we would think that for instance foo_internal.h was the self include when the right answer was foo.h.
Removed comment conversion: it was doing more damage than good.
BUG=
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1442005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3983 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/tools/refactoring/webrtc_reformat.py b/tools/refactoring/webrtc_reformat.py
index e5606fe..269d1c3 100755
--- a/tools/refactoring/webrtc_reformat.py
+++ b/tools/refactoring/webrtc_reformat.py
@@ -30,8 +30,19 @@
def DeCamelCase(text):
- """De-camelize variable names."""
- pattern = re.compile(r'(?<=[ _*\(\&\!])([a-z]+)(?<!k)([A-Z]+)([a-z])?')
+ """De-camelize variable names.
+
+ This function will look at any stringLikeThis and format it in steps. The
+ sequence will be stringLikeThis -> string_likeThis -> string_like_this.
+ """
+ possible_tokens_before_vars = '[ _*\(\&\!\[]'
+ pattern = re.compile(r'(?<=' + possible_tokens_before_vars + ')' +
+ # Match some lower-case characters
+ '([a-z]+)' +
+ # Don't match kFoo, !kFoo, [kFoo], etc
+ '(?<!' + possible_tokens_before_vars + 'k)' +
+ # Match some upper-case characters
+ '([A-Z]+)([a-z])?')
while re.search(pattern, text):
text = re.sub(pattern, LowerWord, text)
return text
@@ -52,34 +63,6 @@
return re.sub(pattern, r'\1++\2)', text)
-def CPPComments(text):
- """Remove all C-comments and replace with C++ comments."""
-
- # Keep the copyright header style.
- line_list = text.splitlines(True)
- copyright_list = line_list[0:10]
- code_list = line_list[10:]
- copy_text = ''.join(copyright_list)
- code_text = ''.join(code_list)
-
- # Remove */ for C-comments, don't care about trailing blanks.
- comment_end = re.compile(r'\n[ ]*\*/[ ]*')
- code_text = re.sub(comment_end, '', code_text)
- comment_end = re.compile(r'\*/')
- code_text = re.sub(comment_end, '', code_text)
- # Remove comment lines in the middle of comments, replace with C++ comments.
- comment_star = re.compile(r'(?<=\n)[ ]*(?!\*\w)\*[ ]*')
- code_text = re.sub(comment_star, r'// ', code_text)
- # Remove start of C comment and replace with C++ comment.
- comment_start = re.compile(r'/\*[ ]*\n')
- code_text = re.sub(comment_start, '', code_text)
- comment_start = re.compile(r'/\*[ ]*(.)')
- code_text = re.sub(comment_start, r'// \1', code_text)
-
- # Add copyright info.
- return copy_text + code_text
-
-
def SortIncludeHeaders(text, filename):
"""Sorts all include headers in alphabetic order.
@@ -106,7 +89,7 @@
h_filename, _ = os.path.splitext(os.path.basename(filename))
for item in includes:
- if re.search(h_filename, item):
+ if re.search(h_filename + '\.', item):
self_include = item
elif re.search(sys_pattern, item):
sys_includes.append(item)
@@ -208,7 +191,6 @@
text = DeCamelCase(text)
text = MoveUnderScore(text)
text = PostfixToPrefixInForLoops(text)
- text = CPPComments(text)
text = AddHeaderPath(text)
text = AddWebrtcPrefixToOldSrcRelativePaths(text)
text = SortIncludeHeaders(text, filename)