@@ -225,7 +225,7 @@ + (NSString *) parseHTML:(NSString *)txt
225
225
226
226
+ (NSString *)parseDiffTree : (NSString *)txt withStats : (NSMutableDictionary *)stats
227
227
{
228
- NSInteger granTotal=0 ;
228
+ NSInteger granTotal=1 ;
229
229
for (NSArray *stat in [stats allValues ]){
230
230
NSInteger add=[[stat objectAtIndex: 0 ] integerValue ];
231
231
NSInteger rem=[[stat objectAtIndex: 1 ] integerValue ];
@@ -330,19 +330,60 @@ + (NSString *)parseDiff:(NSString *)txt
330
330
[res appendString: [NSString stringWithFormat: @" <p>%@ </p>" ,line]];
331
331
}else if (inDiff){
332
332
[res appendString: [NSString stringWithFormat: @" <p>%@ </p>" ,line]];
333
+ if ([self isBinaryFile: line]){
334
+ NSLog (@" line='%@ '" ,line);
335
+ [res appendString: @" </td></tr></thead><tbody>" ];
336
+ NSArray *files=[self getFilesNames: line];
337
+ NSLog (@" files='%@ '" ,files);
338
+ if (![[files objectAtIndex: 0 ] isAbsolutePath ]){
339
+ [res appendString: [NSString stringWithFormat: @" <tr><td colspan='3'>%@ </td></tr>" ,[files objectAtIndex: 0 ]]];
340
+ [res appendString: [NSString stringWithFormat: @" <tr><td colspan='3'><img src='GitX://{SHA}:/prev/%@ '/></td></tr>" ,[files objectAtIndex: 0 ]]];
341
+ }
342
+ if (![[files objectAtIndex: 1 ] isAbsolutePath ]){
343
+ [res appendString: [NSString stringWithFormat: @" <tr><td colspan='3'>%@ </td></tr>" ,[files objectAtIndex: 1 ]]];
344
+ [res appendString: [NSString stringWithFormat: @" <tr><td colspan='3'><img src='GitX://{SHA}/%@ '/></td></tr>" ,[files objectAtIndex: 1 ]]];
345
+ }
346
+ }
333
347
}
334
348
}
335
349
if (inDiff)
336
350
[res appendString: @" </tbody></table>" ];
337
351
return res;
338
352
}
339
353
340
- +(NSString *)getFileName : (NSString *)line {
354
+ +(NSString *)getFileName : (NSString *)line
355
+ {
341
356
NSRange b = [line rangeOfString: @" b/" ];
342
357
NSString *file=[line substringFromIndex: b.location+2 ];
343
358
return file;
344
359
}
345
360
361
+ +(NSArray *)getFilesNames : (NSString *)line
362
+ {
363
+ NSString *a;
364
+ NSString *b;
365
+ NSLog (@" line='%@ '" ,line);
366
+ NSScanner *scanner=[NSScanner scannerWithString: line];
367
+ if ([scanner scanString: @" Binary files " intoString: NULL ]){
368
+ [scanner scanUpToString: @" and" intoString: &a];
369
+ [scanner scanString: @" and" intoString: NULL ];
370
+ [scanner scanUpToString: @" differ" intoString: &b];
371
+ }
372
+ if (![a isAbsolutePath ]) {
373
+ a=[a substringFromIndex: 2 ];
374
+ }
375
+ if (![b isAbsolutePath ]) {
376
+ b=[b substringFromIndex: 2 ];
377
+ }
378
+
379
+ return [NSArray arrayWithObjects: a,b,nil ];
380
+ }
381
+
382
+ +(BOOL )isBinaryFile : (NSString *)line
383
+ {
384
+ return (([line length ]>12 ) && [[line substringToIndex: 12 ] isEqualToString: @" Binary files" ]);
385
+ }
386
+
346
387
+(BOOL )isStartDiff : (NSString *)line
347
388
{
348
389
return (([line length ]>10 ) && [[line substringToIndex: 10 ] isEqualToString: @" diff --git" ]);
0 commit comments