Only return nonzero when rewriting whitespace
diff --git a/pre_commit_hooks/trailing_whitespace_fixer.py b/pre_commit_hooks/trailing_whitespace_fixer.py
index fa9b7dd..d23d58d 100644
--- a/pre_commit_hooks/trailing_whitespace_fixer.py
+++ b/pre_commit_hooks/trailing_whitespace_fixer.py
@@ -10,10 +10,14 @@
def _fix_file(filename, is_markdown):
with open(filename, mode='rb') as file_processed:
lines = file_processed.readlines()
- lines = [_process_line(line, is_markdown) for line in lines]
- with open(filename, mode='wb') as file_processed:
- for line in lines:
- file_processed.write(line)
+ newlines = [_process_line(line, is_markdown) for line in lines]
+ if newlines != lines:
+ with open(filename, mode='wb') as file_processed:
+ for line in newlines:
+ file_processed.write(line)
+ return True
+ else:
+ return False
def _process_line(line, is_markdown):
@@ -55,8 +59,9 @@
parser.error('--markdown-linebreak-ext requires a non-empty argument')
all_markdown = '*' in md_args
# normalize all extensions; split at ',', lowercase, and force 1 leading '.'
- md_exts = ['.' + x.lower().lstrip('.')
- for x in ','.join(md_args).split(',')]
+ md_exts = [
+ '.' + x.lower().lstrip('.') for x in ','.join(md_args).split(',')
+ ]
# reject probable "eaten" filename as extension (skip leading '.' with [1:])
for ext in md_exts:
@@ -69,10 +74,11 @@
return_code = 0
for bad_whitespace_file in bad_whitespace_files:
- print('Fixing {0}'.format(bad_whitespace_file))
_, extension = os.path.splitext(bad_whitespace_file.lower())
- _fix_file(bad_whitespace_file, all_markdown or extension in md_exts)
- return_code = 1
+ md = all_markdown or extension in md_exts
+ if _fix_file(bad_whitespace_file, md):
+ print('Fixing {}'.format(bad_whitespace_file))
+ return_code = 1
return return_code