(hunk, stream=sys.stdout.write)
| 228 | |
| 229 | |
| 230 | def _hunk(hunk, stream=sys.stdout.write): |
| 231 | puts(colored.cyan('@@ -{0},{1} +{2},{3} @@'.format( |
| 232 | hunk.old_start, hunk.old_lines, hunk.new_start, hunk.new_lines)), |
| 233 | stream=stream) |
| 234 | padding = _padding(hunk) |
| 235 | |
| 236 | del_line, add_line, maybe_bold, saw_add = None, None, False, False |
| 237 | for diff_line in hunk.lines: |
| 238 | assert not IS_PY2 or isinstance(diff_line.content, unicode) |
| 239 | st = diff_line.origin |
| 240 | |
| 241 | if st == '-' and not maybe_bold: |
| 242 | maybe_bold = True |
| 243 | del_line = diff_line |
| 244 | elif st == '+' and maybe_bold and not saw_add: |
| 245 | saw_add = True |
| 246 | add_line = diff_line |
| 247 | elif st == ' ' and maybe_bold and saw_add: |
| 248 | bold1, bold2 = _highlight(del_line.content, add_line.content) |
| 249 | |
| 250 | puts(_format_line(del_line, padding, bold_delim=bold1), stream=stream) |
| 251 | puts(_format_line(add_line, padding, bold_delim=bold2), stream=stream) |
| 252 | |
| 253 | del_line, add_line, maybe_bold, saw_add = None, None, False, False |
| 254 | |
| 255 | puts(_format_line(diff_line, padding), stream=stream) |
| 256 | else: |
| 257 | if del_line: |
| 258 | puts(_format_line(del_line, padding), stream=stream) |
| 259 | if add_line: |
| 260 | puts(_format_line(add_line, padding), stream=stream) |
| 261 | |
| 262 | del_line, add_line, maybe_bold, saw_add = None, None, False, False |
| 263 | |
| 264 | puts(_format_line(diff_line, padding), stream=stream) |
| 265 | |
| 266 | |
| 267 | if maybe_bold and saw_add: |
| 268 | bold1, bold2 = _highlight(del_line.content, add_line.content) |
| 269 | |
| 270 | puts(_format_line(del_line, padding, bold_delim=bold1), stream=stream) |
| 271 | puts(_format_line(add_line, padding, bold_delim=bold2), stream=stream) |
| 272 | else: |
| 273 | if del_line: |
| 274 | puts(_format_line(del_line, padding), stream=stream) |
| 275 | if add_line: |
| 276 | puts(_format_line(add_line, padding), stream=stream) |
| 277 | |
| 278 | |
| 279 | def _padding(hunk): |
no test coverage detected