Skip to content

Commit

Permalink
Fix --diff output when encountering EOF (#1328)
Browse files Browse the repository at this point in the history
`split("\n")` includes a final empty element `""` if the final line
ends with `\n` (as it should for POSIX-compliant text files), which
then became an extra `"\n"`.

`splitlines()` solves that, but there's a caveat, as it will split
on other types of line breaks too (like `\r`), which may not be
desired.

Fixes #526.
  • Loading branch information
akien-mga committed Apr 5, 2020
1 parent 9ed2542 commit 959848c
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 7 deletions.
4 changes: 2 additions & 2 deletions black.py
Expand Up @@ -3876,8 +3876,8 @@ def diff(a: str, b: str, a_name: str, b_name: str) -> str:
"""Return a unified diff string between strings `a` and `b`."""
import difflib

a_lines = [line + "\n" for line in a.split("\n")]
b_lines = [line + "\n" for line in b.split("\n")]
a_lines = [line + "\n" for line in a.splitlines()]
b_lines = [line + "\n" for line in b.splitlines()]
return "".join(
difflib.unified_diff(a_lines, b_lines, fromfile=a_name, tofile=b_name, n=5)
)
Expand Down
5 changes: 2 additions & 3 deletions tests/data/blackd_diff.diff
@@ -1,6 +1,6 @@
--- [Deterministic header]
+++ [Deterministic header]
@@ -1,7 +1,6 @@
@@ -1,6 +1,5 @@
-def abc ():
- return ["hello", "world",
- "!"]
Expand All @@ -9,6 +9,5 @@

-print( "Incorrect formatting"
-)
+
+print("Incorrect formatting")
+
3 changes: 1 addition & 2 deletions tests/data/expression.diff
Expand Up @@ -160,7 +160,7 @@
slice[0:1:2]
slice[:]
slice[:-1]
@@ -134,113 +169,171 @@
@@ -134,112 +169,170 @@
numpy[-(c + 1) :, d]
numpy[:, l[-2]]
numpy[:, ::-1]
Expand Down Expand Up @@ -404,4 +404,3 @@
return True
last_call()
# standalone comment at ENDMARKER

0 comments on commit 959848c

Please sign in to comment.