summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2019-01-30 20:23:16 +1300
committerTom Rini <trini@konsulko.com>2019-02-09 07:50:54 -0500
commit4d9dbb1fbb7c47ebb4390d6aaa35aa4254db06d4 (patch)
tree0b0a234b072012a75f83fc889ed9a8dff90f363c /tools
parent36fddec14b1447055d91b13a0ba3997e66ecec35 (diff)
moveconfig: add a second pass for empty #if/#endif blocks
Moveconfig already attempts to remove empty #if/#endif blocks when there is a matching CONFIG_ being moved. Add a second pass which covers files without a match. Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/moveconfig.py27
1 files changed, 25 insertions, 2 deletions
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index caa81ac2ed..1a214c5605 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -545,6 +545,28 @@ def confirm(options, prompt):
return True
+def cleanup_empty_blocks(header_path, options):
+ """Clean up empty conditional blocks
+
+ Arguments:
+ header_path: path to the cleaned file.
+ options: option flags.
+ """
+ pattern = re.compile(r'^\s*#\s*if.*$\n^\s*#\s*endif.*$\n*', flags=re.M)
+ with open(header_path) as f:
+ data = f.read()
+
+ new_data = pattern.sub('\n', data)
+
+ show_diff(data.splitlines(True), new_data.splitlines(True), header_path,
+ options.color)
+
+ if options.dry_run:
+ return
+
+ with open(header_path, 'w') as f:
+ f.write(new_data)
+
def cleanup_one_header(header_path, patterns, options):
"""Clean regex-matched lines away from a file.
@@ -626,8 +648,9 @@ def cleanup_headers(configs, options):
continue
for filename in filenames:
if not fnmatch.fnmatch(filename, '*~'):
- cleanup_one_header(os.path.join(dirpath, filename),
- patterns, options)
+ header_path = os.path.join(dirpath, filename)
+ cleanup_one_header(header_path, patterns, options)
+ cleanup_empty_blocks(header_path, options)
def cleanup_one_extra_option(defconfig_path, configs, options):
"""Delete config defines in CONFIG_SYS_EXTRA_OPTIONS in one defconfig file.