Skip to content

Commit 6959a15

Browse files
committed
some diff bug
1 parent 77b8431 commit 6959a15

File tree

2 files changed

+33
-41
lines changed

2 files changed

+33
-41
lines changed

GLFileView.m

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -226,19 +226,22 @@ + (NSString *) parseHTML:(NSString *)txt
226226
+ (NSString *) parseDiff:(NSString *)txt
227227
{
228228
txt=[self parseHTML:txt];
229-
229+
230230
NSArray *lines = [txt componentsSeparatedByString:@"\n"];
231231
NSString *line;
232232
NSMutableString *res=[NSMutableString string];
233233
BOOL inDiff=FALSE;
234-
int i=0;
235-
line=[lines objectAtIndex:i++];
236-
while(i<[lines count]){
234+
BOOL inBlock=FALSE;
235+
236+
int l_int,l_line,l_end;
237+
int r_int,r_line,r_end;
238+
int i;
239+
for (i=0; i<[lines count]; i++) {
240+
line=[lines objectAtIndex:i];
241+
237242
if([GLFileView isStartBlock:line]){
238-
239-
int l_int,l_line,l_end;
240-
int r_int,r_line,r_end;
241-
243+
[res appendString:@"</td></tr></thead><tbody>"];
244+
inDiff=FALSE;
242245
NSString *header=[line substringFromIndex:3];
243246
NSRange hr = NSMakeRange(0, [header rangeOfString:@" @@"].location);
244247
header=[header substringWithRange:hr];
@@ -254,34 +257,27 @@ + (NSString *) parseDiff:(NSString *)txt
254257
r_end=r_line+[[pos_r objectAtIndex:1]integerValue];
255258

256259
[res appendString:[NSString stringWithFormat:@"<tr class='header'><td colspan='3'>%@</td></tr>",line]];
257-
258-
do{
259-
line=[lines objectAtIndex:i++];
260-
NSString *s=[line substringToIndex:1];
261-
262-
if([s isEqualToString:@" "]){
263-
[res appendString:[NSString stringWithFormat:@"<tr><td class='l'>%d</td><td class='r'>%d</td>",l_line++,r_line++]];
264-
}else if([s isEqualToString:@"-"]){
265-
[res appendString:[NSString stringWithFormat:@"<tr class='l'><td class='l'>%d</td><td class='r'></td>",l_line++]];
266-
}else if([s isEqualToString:@"+"]){
267-
[res appendString:[NSString stringWithFormat:@"<tr class='r'><td class='l'></td><td class='r'>%d</td>",r_line++]];
268-
}
269-
[res appendString:[NSString stringWithFormat:@"<td class='code'>%@</td></tr>",line]];
270-
//NSLog(@"%@ %d(%d)-%d(%d)",s,l_line,(l_int+l_count),r_line,(r_int+r_count));
271-
}while((l_line<l_end) || (r_line<r_end));
272-
260+
inBlock=TRUE;
261+
}else if(inBlock){
262+
NSString *s=[line substringToIndex:1];
263+
if([s isEqualToString:@" "]){
264+
[res appendString:[NSString stringWithFormat:@"<tr><td class='l'>%d</td><td class='r'>%d</td>",l_line++,r_line++]];
265+
}else if([s isEqualToString:@"-"]){
266+
[res appendString:[NSString stringWithFormat:@"<tr class='l'><td class='l'>%d</td><td class='r'></td>",l_line++]];
267+
}else if([s isEqualToString:@"+"]){
268+
[res appendString:[NSString stringWithFormat:@"<tr class='r'><td class='l'></td><td class='r'>%d</td>",r_line++]];
269+
}
270+
[res appendString:[NSString stringWithFormat:@"<td class='code'>%@</td></tr>",[line substringFromIndex:1]]];
271+
if(!(l_line<l_end) && !(r_line<r_end))
272+
inBlock=FALSE;
273273
}else if([GLFileView isStartDiff:line]){
274274
if(inDiff)
275275
[res appendString:@"</tbody></table>"];
276276
inDiff=TRUE;
277277
[res appendString:@"<table class='diff'><thead><tr><td colspan='3'>"];
278-
do{
279-
[res appendString:[NSString stringWithFormat:@"<p>%@</p>",line]];
280-
line=[lines objectAtIndex:i++];
281-
}while(![GLFileView isStartBlock:line]);
282-
[res appendString:@"</td></tr></thead><tbody>"];
283-
}else{
284-
line=[lines objectAtIndex:i++];
278+
[res appendString:[NSString stringWithFormat:@"<p>%@</p>",line]];
279+
}else if(inDiff){
280+
[res appendString:[NSString stringWithFormat:@"<p>%@</p>",line]];
285281
}
286282
}
287283
if(inDiff)

html/views/diff/diffWindow.css

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ table.diff {
33
border: 1px solid #8f8f8f;
44
width: 100%;
55
border-collapse: collapse;
6-
margin-right: 5px;
7-
margin-left: 5px;
6+
margin-bottom: 10px;
87
}
98

109
table.diff tr td {
@@ -48,17 +47,14 @@ table.diff thead tr td p {
4847
margin: 0;
4948
}
5049

51-
#diff table.diff thead {
52-
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(244, 244, 244,1)), color-stop(1, rgba(215,215,215,1)));
50+
table.diff thead {
51+
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(206,206,206,1)), color-stop(1, rgba(166,166,166,1)));
5352
}
5453

55-
#diff table.diff thead tr td {
54+
table.diff thead tr td {
5655
padding: 5px;
5756
}
5857

59-
#diff table.diff tbody tr.header {
60-
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(206,206,206,1)), color-stop(1, rgba(166,166,166,1)));
61-
/* Saf4
62-
63-
+, Chrome */
58+
table.diff tbody tr.header {
59+
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(244, 244, 244,1)), color-stop(1, rgba(215,215,215,1)));
6460
}

0 commit comments

Comments
 (0)