Index: difflib.py =================================================================== --- difflib.py (revision 60896) +++ difflib.py (working copy) @@ -1191,14 +1191,26 @@ for tag, i1, i2, j1, j2 in group: if tag == 'equal': for line in a[i1:i2]: - yield ' ' + line + if not line.endswith(lineterm): + yield ' ' + line + lineterm + yield r'\ No newline at end of file' + lineterm + else: + yield ' ' + line continue if tag == 'replace' or tag == 'delete': for line in a[i1:i2]: - yield '-' + line + if not line.endswith(lineterm): + yield '-' + line + lineterm + yield r'\ No newline at end of file' + lineterm + else: + yield '-' + line if tag == 'replace' or tag == 'insert': for line in b[j1:j2]: - yield '+' + line + if not line.endswith(lineterm): + yield '+' + line + lineterm + yield r'\ No newline at end of file' + lineterm + else: + yield '+' + line # See http://www.unix.org/single_unix_specification/ def context_diff(a, b, fromfile='', tofile='',