@@ -90,13 +90,18 @@ def __init__(self, diff, left: bool, *args, **kwargs):
90
90
91
91
def get_next_diff_line (self , diff_num , next_diff_line ):
92
92
next_diff = self .diff [diff_num ] if len (self .diff ) > diff_num else None
93
+
93
94
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 ] == '+' ) :
95
96
next_diff_line = next_diff [1 ]
97
+ elif next_diff [0 ] == '-' or next_diff [0 ] == '+' :
98
+ next_diff_line = next_diff [2 ]
96
99
elif self .left and next_diff [0 ] == '=' :
97
100
next_diff_line = next_diff [1 ]
98
- elif not self . left and next_diff [0 ] == '=' :
101
+ elif next_diff [0 ] == '=' :
99
102
next_diff_line = next_diff [3 ]
103
+ else :
104
+ raise Exception ("invlaid next diff mode" )
100
105
101
106
return next_diff , diff_num + 1 , next_diff_line
102
107
@@ -128,20 +133,20 @@ def wrap_diff(self, source):
128
133
except StopIteration :
129
134
break
130
135
131
- yield line
136
+ yield line [ 0 ], str ( linenum ) + ':' + str ( next_diff_line ) + ':' + line [ 1 ]
132
137
133
138
if linenum == next_diff_line :
134
139
if next_diff is not None :
135
140
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 ])
137
142
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 ]
142
148
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 ])
145
150
elif next_diff [0 ] == '=' :
146
151
total = max (next_diff [2 ], next_diff [4 ])
147
152
to_print = next_diff [2 ] if self .left else next_diff [4 ]
0 commit comments