Package: debbindiff
Version: 11
Tags: patch
User: [email protected]
Usertags: rebootstrap
debbindiff --text crashes when it encounters an empty file.
Example input package triggering the error: libreadline6
Example traceback being fixed:
Traceback (most recent call last):
File "/usr/bin/debbindiff", line 120, in <module>
sys.exit(main())
File "/usr/bin/debbindiff", line 114, in main
output_text(differences, print_func=print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
71, in output_text
print_details(difference, print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
59, in print_details
print_difference(detail, print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line
36, in print_difference
if not difference.lines2[-1].endswith('\n'):
IndexError: list index out of range
I think the fix is pretty straight forward.
Helmut
>From 8697e25016f0cd2786563cc5c5aa440fa99ef62d Mon Sep 17 00:00:00 2001
From: Helmut Grohne <[email protected]>
Date: Thu, 26 Mar 2015 06:58:20 +0100
Subject: [PATCH] fix IndexError from --text with empty files
Example input package triggering the error: libreadline6
Example traceback being fixed:
Traceback (most recent call last):
File "/usr/bin/debbindiff", line 120, in <module>
sys.exit(main())
File "/usr/bin/debbindiff", line 114, in main
output_text(differences, print_func=print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 71, in output_text
print_details(difference, print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 62, in print_details
print_details(detail, new_print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 59, in print_details
print_difference(detail, print_func)
File "/usr/lib/python2.7/dist-packages/debbindiff/presenters/text.py", line 36, in print_difference
if not difference.lines2[-1].endswith('\n'):
IndexError: list index out of range
---
debbindiff/presenters/text.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/debbindiff/presenters/text.py b/debbindiff/presenters/text.py
index 5cda5ce..ca60af8 100644
--- a/debbindiff/presenters/text.py
+++ b/debbindiff/presenters/text.py
@@ -30,10 +30,10 @@ def print_difference(difference, print_func):
for line in difference.comment.split('\n'):
print_func(u"ââ %s" % line)
if difference.lines1 or difference.lines2:
- if not difference.lines1[-1].endswith('\n'):
+ if difference.lines1 and not difference.lines1[-1].endswith('\n'):
difference.lines1[-1] = difference.lines1[-1] + '\n'
difference.lines1.append('<No newline at the end>\n')
- if not difference.lines2[-1].endswith('\n'):
+ if difference.lines2 and nand ot difference.lines2[-1].endswith('\n'):
difference.lines2[-1] = difference.lines2[-1] + '\n'
difference.lines2.append('<No newline at the end>\n')
g = difflib.unified_diff(difference.lines1, difference.lines2)
--
2.1.4