@@ -376,7 +376,7 @@ + (NSString *)parseDiffChunk:(NSString *)txt
376
376
NSMutableString *res=[NSMutableString string ];
377
377
378
378
NSString *line;
379
- int l_line;
379
+ int l_line[ 32 ]; // FIXME: make dynamic
380
380
int r_line;
381
381
382
382
line=[lines nextObject ];
@@ -390,26 +390,46 @@ + (NSString *)parseDiffChunk:(NSString *)txt
390
390
NSString *header=[line substringWithRange: hr];
391
391
392
392
NSArray *pos=[header componentsSeparatedByString: @" " ];
393
- NSArray *pos_l=[[pos objectAtIndex: 0 ] componentsSeparatedByString: @" ," ];
394
393
NSArray *pos_r=[[pos objectAtIndex: arity-1 ] componentsSeparatedByString: @" ," ];
395
394
396
- l_line=abs ([[pos_l objectAtIndex: 0 ]integerValue]);
395
+ for (int i=0 ; i<arity-1 ; i++){
396
+ NSArray *pos_l=[[pos objectAtIndex: i] componentsSeparatedByString: @" ," ];
397
+ l_line[i]=abs ([[pos_l objectAtIndex: 0 ]integerValue]);
398
+ }
397
399
r_line=[[pos_r objectAtIndex: 0 ]integerValue];
398
400
399
- [res appendString: [NSString stringWithFormat: @" <tr class='header'><td colspan='3 '>%@ </td></tr>" ,line]];
401
+ [res appendString: [NSString stringWithFormat: @" <tr class='header'><td colspan='%d '>%@ </td></tr>" ,arity+ 1 ,line]];
400
402
while ((line=[lines nextObject ])){
401
- NSString *s=[line substringToIndex: 1 ];
402
- if ([s isEqualToString: @" " ]){
403
- [res appendString: [NSString stringWithFormat: @" <tr><td class='l'>%d </td><td class='r'>%d </td>" ,l_line++,r_line++]];
404
- }else if ([s isEqualToString: @" -" ]){
405
- [res appendString: [NSString stringWithFormat: @" <tr class='l'><td class='l'>%d </td><td class='r'></td>" ,l_line++]];
406
- }else if ([s isEqualToString: @" +" ]){
407
- [res appendString: [NSString stringWithFormat: @" <tr class='r'><td class='l'></td><td class='r'>%d </td>" ,r_line++]];
408
- }
409
- if (![s isEqualToString: @" \\ " ]){
403
+ NSString *prefix=[line substringToIndex: arity-1 ];
404
+ if ([prefix rangeOfString: @" -" ].location != NSNotFound ){
405
+ [res appendString: @" <tr class='l'>" ];
406
+ for (int i=0 ; i<arity-1 ; i++){
407
+ if ([prefix characterAtIndex: i] == ' -' ){
408
+ [res appendString: [NSString stringWithFormat: @" <td class='l'>%d </td>" ,l_line[i]++]];
409
+ }else {
410
+ [res appendString: @" <td class='l'></td>" ];
411
+ }
412
+ }
413
+ [res appendString: @" <td class='r'></td>" ];
414
+ }else if ([prefix rangeOfString: @" +" ].location != NSNotFound ){
415
+ [res appendString: @" <tr class='r'>" ];
416
+ for (int i=0 ; i<arity-1 ; i++){
417
+ [res appendString: @" <td class='l'></td>" ];
418
+ }
419
+ [res appendString: [NSString stringWithFormat: @" <td class='r'>%d </td>" ,r_line++]];
420
+ }else {
421
+ [res appendString: @" <tr>" ];
422
+ for (int i=0 ; i<arity-1 ; i++){
423
+ [res appendString: [NSString stringWithFormat: @" <td class='l'>%d </td>" ,l_line[i]++]];
424
+ }
425
+ [res appendString: [NSString stringWithFormat: @" <td class='r'>%d </td>" ,r_line++]];
426
+ }
427
+ if (![prefix hasPrefix: @" \\ " ]){
410
428
[res appendString: [NSString stringWithFormat: @" <td class='code'>%@ </td></tr>" ,[line substringFromIndex: arity-1 ]]];
411
429
}
412
430
}
431
+ DLog (@" -=%@ =-" ,res);
432
+
413
433
return res;
414
434
}
415
435
@@ -420,7 +440,7 @@ + (NSString *)parseDiffHeader:(NSString *)txt
420
440
421
441
NSString *line=[lines nextObject ];
422
442
NSString *fileName=[self getFileName: line];
423
- [res appendString: [NSString stringWithFormat: @" <tr id='%@ '><td colspan='3 '><div style='float:left;'>" ,fileName]];
443
+ [res appendString: [NSString stringWithFormat: @" <tr id='%@ '><td colspan='33 '><div style='float:left;'>" ,fileName]];
424
444
do {
425
445
[res appendString: [NSString stringWithFormat: @" <p>%@ </p>" ,line]];
426
446
}while ((line=[lines nextObject ]));
0 commit comments