Fix mixed-line-endings --fix=... when whole file is a different ending
diff --git a/pre_commit_hooks/mixed_line_ending.py b/pre_commit_hooks/mixed_line_ending.py
index 301c654..a163726 100644
--- a/pre_commit_hooks/mixed_line_ending.py
+++ b/pre_commit_hooks/mixed_line_ending.py
@@ -55,7 +55,8 @@
     else:
         target_ending = FIX_TO_LINE_ENDING[fix]
         # find if there are lines with *other* endings
-        del counts[target_ending]
+        # It's possible there's no line endings of the target type
+        counts.pop(target_ending, None)
         other_endings = bool(sum(counts.values()))
         if other_endings:
             _fix(filename, contents, target_ending)
diff --git a/tests/mixed_line_ending_test.py b/tests/mixed_line_ending_test.py
index 808295b..23837cd 100644
--- a/tests/mixed_line_ending_test.py
+++ b/tests/mixed_line_ending_test.py
@@ -101,3 +101,13 @@
 
     assert ret == 1
     assert path.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
+
+
+def test_fix_lf_all_crlf(tmpdir):
+    """Regression test for #239"""
+    path = tmpdir.join('input.txt')
+    path.write_binary(b'foo\r\nbar\r\n')
+    ret = main(('--fix=lf', path.strpath))
+
+    assert ret == 1
+    assert path.read_binary() == b'foo\nbar\n'