Skip to content

Commit

Permalink
Fix --diff output when encountering EOF
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 psf#526.
  • Loading branch information
akien-mga committed Apr 2, 2020
1 parent 9ed2542 commit 30c1a54
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 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")
+

0 comments on commit 30c1a54

Please sign in to comment.