OLD | NEW |
---|---|
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 """Given a filename as an argument, sort the #include/#imports in that file. | 3 """Given a filename as an argument, sort the #include/#imports in that file. |
4 | 4 |
5 Shows a diff and prompts for confirmation before doing the deed. | 5 Shows a diff and prompts for confirmation before doing the deed. |
6 """ | 6 """ |
7 | 7 |
8 import optparse | 8 import optparse |
9 import os | 9 import os |
10 import sys | 10 import sys |
(...skipping 16 matching lines...) Expand all Loading... | |
27 print ch | 27 print ch |
28 return ch in ('Y', 'y') | 28 return ch in ('Y', 'y') |
29 | 29 |
30 | 30 |
31 def IncludeCompareKey(line): | 31 def IncludeCompareKey(line): |
32 """Sorting comparator key used for comparing two #include lines. | 32 """Sorting comparator key used for comparing two #include lines. |
33 Returns the filename without the #include/#import prefix. | 33 Returns the filename without the #include/#import prefix. |
34 """ | 34 """ |
35 for prefix in ('#include ', '#import '): | 35 for prefix in ('#include ', '#import '): |
36 if line.startswith(prefix): | 36 if line.startswith(prefix): |
37 return line[len(prefix):] | 37 line = line[len(prefix):] |
38 break | |
39 # <windows.h> needs to be before other includes, so return a key | |
40 # that's less than all other keys. | |
41 if line.find('<windows.h>') != -1: | |
Evan Martin
2011/05/19 20:04:33
Maybe test .startswith() instead? (will catch the
Nico
2011/05/19 20:06:21
Done. (lstrip().startswith() if someone accidental
| |
42 return '' | |
38 return line | 43 return line |
39 | 44 |
40 | 45 |
41 def IsInclude(line): | 46 def IsInclude(line): |
42 """Returns True if the line is an #include/#import line.""" | 47 """Returns True if the line is an #include/#import line.""" |
43 return line.startswith('#include ') or line.startswith('#import ') | 48 return line.startswith('#include ') or line.startswith('#import ') |
44 | 49 |
45 | 50 |
46 def SortHeader(infile, outfile): | 51 def SortHeader(infile, outfile): |
47 """Sorts the headers in infile, writing the sorted file to outfile.""" | 52 """Sorts the headers in infile, writing the sorted file to outfile.""" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
85 finally: | 90 finally: |
86 try: | 91 try: |
87 os.remove(fixfilename) | 92 os.remove(fixfilename) |
88 except OSError: | 93 except OSError: |
89 # If the file isn't there, we don't care. | 94 # If the file isn't there, we don't care. |
90 pass | 95 pass |
91 | 96 |
92 | 97 |
93 if __name__ == '__main__': | 98 if __name__ == '__main__': |
94 main() | 99 main() |
OLD | NEW |