diff --git a/Classes/GTDiffHunk.h b/Classes/GTDiffHunk.h index 371484ebd..a646c6644 100644 --- a/Classes/GTDiffHunk.h +++ b/Classes/GTDiffHunk.h @@ -9,6 +9,7 @@ #import "git2.h" @class GTDiffDelta; +@class GTDiffLine; // A class representing a hunk within a diff delta. @interface GTDiffHunk : NSObject @@ -31,6 +32,6 @@ // // block - A block to execute on each line. Setting `stop` to `NO` will // immediately stop the enumeration and return from the method. -- (void)enumerateLinesInHunkUsingBlock:(void (^)(NSString *lineContent, NSUInteger oldLineNumber, NSUInteger newLineNumber, GTDiffHunkLineOrigin lineOrigin, BOOL *stop))block; +- (void)enumerateLinesInHunkUsingBlock:(void (^)(GTDiffLine *line, BOOL *stop))block; @end diff --git a/Classes/GTDiffHunk.m b/Classes/GTDiffHunk.m index 182741143..554816eb0 100644 --- a/Classes/GTDiffHunk.m +++ b/Classes/GTDiffHunk.m @@ -9,6 +9,7 @@ #import "GTDiffHunk.h" #import "GTDiffDelta.h" +#import "GTDiffLine.h" @interface GTDiffHunk () @@ -38,7 +39,7 @@ - (instancetype)initWithDelta:(GTDiffDelta *)delta hunkIndex:(NSUInteger)hunkInd return self; } -- (void)enumerateLinesInHunkUsingBlock:(void (^)(NSString *lineContent, NSUInteger oldLineNumber, NSUInteger newLineNumber, GTDiffHunkLineOrigin lineOrigin, BOOL *stop))block { +- (void)enumerateLinesInHunkUsingBlock:(void (^)(GTDiffLine *line, BOOL *stop))block { NSParameterAssert(block != nil); for (NSUInteger idx = 0; idx < self.lineCount; idx ++) { @@ -51,8 +52,9 @@ - (void)enumerateLinesInHunkUsingBlock:(void (^)(NSString *lineContent, NSUInteg if (result != GIT_OK) continue; NSString *lineString = [[[NSString alloc] initWithBytes:content length:contentLength encoding:NSUTF8StringEncoding] stringByTrimmingCharactersInSet:NSCharacterSet.newlineCharacterSet]; + GTDiffLine *line = [[GTDiffLine alloc] initWithContent:lineString oldLineNumber:(NSUInteger)oldLineNumber newLineNumber:(NSUInteger)newLineNumber origin:lineOrigin]; BOOL stop = NO; - block(lineString, (NSUInteger)oldLineNumber, (NSUInteger)newLineNumber, lineOrigin, &stop); + block(line, &stop); if (stop) return; } }