diff --git a/English.lproj/RepositoryWindow.xib b/English.lproj/RepositoryWindow.xib index 7a5139c..cbfa1a1 100644 --- a/English.lproj/RepositoryWindow.xib +++ b/English.lproj/RepositoryWindow.xib @@ -2,13 +2,13 @@ 1050 - 10J869 - 1305 + 10J3331a + 1306 1038.35 461.00 com.apple.InterfaceBuilder.CocoaPlugin - 1305 + 1306 YES @@ -63,7 +63,7 @@ YES YES - NO + YES YES 1 1 diff --git a/GLFileView.h b/GLFileView.h index 8084ddc..2b97e23 100644 --- a/GLFileView.h +++ b/GLFileView.h @@ -31,7 +31,7 @@ - (void)showFile; - (void)didLoad; - (NSString *)parseBlame:(NSString *)txt; -+ (NSString *)parseHTML:(NSString *)txt; ++ (NSString *)escapeHTML:(NSString *)txt; + (NSString *)parseDiff:(NSString *)txt; + (NSString *)parseDiffTree:(NSString *)txt withStats:(NSMutableDictionary *)stats; + (NSString *)getFileName:(NSString *)line; diff --git a/GLFileView.m b/GLFileView.m index f6d68c6..7fbd4ae 100644 --- a/GLFileView.m +++ b/GLFileView.m @@ -110,7 +110,7 @@ if(startFile==@"fileview"){ fileTxt=[file textContents:&theError]; if(!theError) - fileTxt=[GLFileView parseHTML:fileTxt]; + fileTxt=[GLFileView escapeHTML:fileTxt]; }else if(startFile==@"blame"){ fileTxt=[file blame:&theError]; if(!theError) @@ -240,13 +240,16 @@ [super closeView]; } -+ (NSString *) parseHTML:(NSString *)txt ++ (NSString *) escapeHTML:(NSString *)txt { - txt=[txt stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; - txt=[txt stringByReplacingOccurrencesOfString:@"<" withString:@"<"]; - txt=[txt stringByReplacingOccurrencesOfString:@">" withString:@">"]; + NSMutableString *newTxt = [NSMutableString stringWithString:txt]; + [newTxt replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch range:NSMakeRange(0, [newTxt length])]; + [newTxt replaceOccurrencesOfString:@"<" withString:@"<" options:NSLiteralSearch range:NSMakeRange(0, [newTxt length])]; + [newTxt replaceOccurrencesOfString:@">" withString:@">" options:NSLiteralSearch range:NSMakeRange(0, [newTxt length])]; + [newTxt replaceOccurrencesOfString:@"\"" withString:@""" options:NSLiteralSearch range:NSMakeRange(0, [newTxt length])]; + [newTxt replaceOccurrencesOfString:@"'" withString:@"'" options:NSLiteralSearch range:NSMakeRange(0, [newTxt length])]; - return txt; + return newTxt; } + (NSString *)parseDiffTree:(NSString *)txt withStats:(NSMutableDictionary *)stats @@ -296,7 +299,7 @@ + (NSString *)parseDiff:(NSString *)txt { - txt=[self parseHTML:txt]; + txt=[self escapeHTML:txt]; NSMutableString *res=[NSMutableString string]; NSScanner *scan=[NSScanner scannerWithString:txt]; @@ -504,7 +507,7 @@ - (NSString *) parseBlame:(NSString *)txt { - txt=[GLFileView parseHTML:txt]; + txt=[GLFileView escapeHTML:txt]; NSArray *lines = [txt componentsSeparatedByString:@"\n"]; NSString *line; diff --git a/PBGitSidebarController.m b/PBGitSidebarController.m index 051ed59..dad7de1 100644 --- a/PBGitSidebarController.m +++ b/PBGitSidebarController.m @@ -522,8 +522,11 @@ enum { // get config BOOL hasSVN = [repository hasSvnRemote]; [svnFetchButton setEnabled:hasSVN]; + [svnFetchButton setHidden:!hasSVN]; [svnRebaseButton setEnabled:hasSVN]; + [svnRebaseButton setHidden:!hasSVN]; [svnDcommitButton setEnabled:hasSVN]; + [svnDcommitButton setHidden:!hasSVN]; } - (IBAction) fetchPullPushAction:(id)sender diff --git a/PBWebHistoryController.m b/PBWebHistoryController.m index b422132..a870c30 100644 --- a/PBWebHistoryController.m +++ b/PBWebHistoryController.m @@ -167,7 +167,8 @@ } }else{ if (subj) { - [subject appendString:[NSString stringWithFormat:@"%@
",[line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]]; + NSString *trimmedLine = [line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + [subject appendString:[NSString stringWithFormat:@"%@
",[GLFileView escapeHTML:trimmedLine]]]; }else{ NSArray *comps=[line componentsSeparatedByString:@" "]; if([comps count]==2){