@@ -90,13 +90,18 @@ def __init__(self, diff, left: bool, *args, **kwargs):
9090
9191 def get_next_diff_line (self , diff_num , next_diff_line ):
9292 next_diff = self .diff [diff_num ] if len (self .diff ) > diff_num else None
93+
9394 if next_diff is not None :
94- if next_diff [0 ] == '-' or next_diff [0 ] == '+' :
95+ if self . left and ( next_diff [0 ] == '-' or next_diff [0 ] == '+' ) :
9596 next_diff_line = next_diff [1 ]
97+ elif next_diff [0 ] == '-' or next_diff [0 ] == '+' :
98+ next_diff_line = next_diff [2 ]
9699 elif self .left and next_diff [0 ] == '=' :
97100 next_diff_line = next_diff [1 ]
98- elif not self . left and next_diff [0 ] == '=' :
101+ elif next_diff [0 ] == '=' :
99102 next_diff_line = next_diff [3 ]
103+ else :
104+ raise Exception ("invlaid next diff mode" )
100105
101106 return next_diff , diff_num + 1 , next_diff_line
102107
@@ -133,15 +138,15 @@ def wrap_diff(self, source):
133138 if linenum == next_diff_line :
134139 if next_diff is not None :
135140 if self .left and next_diff [0 ] == '+' :
136- yield from self .yield_empty (next_diff [2 ])
141+ yield from self .yield_empty (next_diff [3 ])
137142 elif next_diff [0 ] == '+' :
138- yield from self .mark_lines (source , next_diff [2 ], 'line-added' )
139- linenum += next_diff [2 ]
140- elif not self .left and next_diff [0 ] == '-' :
141- yield from self .yield_empty (next_diff [2 ])
143+ yield from self .mark_lines (source , next_diff [3 ], 'line-added' )
144+ linenum += next_diff [3 ]
145+ elif self .left and next_diff [0 ] == '-' :
146+ yield from self .mark_lines (source , next_diff [3 ], 'line-removed' )
147+ linenum += next_diff [3 ]
142148 elif next_diff [0 ] == '-' :
143- yield from self .mark_lines (source , next_diff [2 ], 'line-removed' )
144- linenum += next_diff [2 ]
149+ yield from self .yield_empty (next_diff [3 ])
145150 elif next_diff [0 ] == '=' :
146151 total = max (next_diff [2 ], next_diff [4 ])
147152 to_print = next_diff [2 ] if self .left else next_diff [4 ]
0 commit comments