diff kitten: Fix error when only RHS file is a binary file

Fixes #752
This commit is contained in:
Kovid Goyal 2018-07-28 13:58:27 +05:30
parent 3df78de3f8
commit 8a812c9d02
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 7 additions and 3 deletions

View File

@ -32,6 +32,10 @@ Changelog
takes parameters so you can define your own shortcuts to clear the takes parameters so you can define your own shortcuts to clear the
screen/scrollback also (:iss:`747`) screen/scrollback also (:iss:`747`)
- diff kitten: Fix error when right hand side file is binary and left hand side
file is text (:iss:`752`)
0.11.3 [2018-07-10] 0.11.3 [2018-07-10]
------------------------------ ------------------------------

View File

@ -42,7 +42,7 @@ def generate_diff(collection, context):
for path, item_type, changed_path in collection: for path, item_type, changed_path in collection:
if item_type == 'diff': if item_type == 'diff':
is_binary = isinstance(data_for_path(path), bytes) is_binary = isinstance(data_for_path(path), bytes) or isinstance(data_for_path(changed_path), bytes)
if not is_binary: if not is_binary:
d.add_diff(path, changed_path) d.add_diff(path, changed_path)

View File

@ -452,8 +452,8 @@ def render_diff(collection, diff_map, args, columns, image_manager):
for i, (path, item_type, other_path) in enumerate(collection): for i, (path, item_type, other_path) in enumerate(collection):
item_ref = Reference(path) item_ref = Reference(path)
is_binary = isinstance(data_for_path(path), bytes) is_binary = isinstance(data_for_path(path), bytes) or (other_path and isinstance(data_for_path(other_path), bytes))
is_img = is_binary and is_image(path) and images_supported() is_img = is_binary and (is_image(path) or is_image(other_path)) and images_supported()
yield from yield_lines_from(title_lines(path, other_path, args, columns, margin_size), item_ref, False) yield from yield_lines_from(title_lines(path, other_path, args, columns, margin_size), item_ref, False)
if item_type == 'diff': if item_type == 'diff':
if is_binary: if is_binary: