Jens Alfke avatar Jens Alfke committed 2cb1893

Importing patch from oscherler, for opening binary files (re #33)

Comments (0)

Files changed (6)

 
 - (void) addFilesMatching: (Predicate)predicate toArray: (NSMutableArray*)array;
 
-@property (readonly,nonatomic) NSString* contents;
+@property (readonly,nonatomic) NSData* contents;
 
 @property (readonly,nonatomic) NSArray* revisions;    // array of HgRevision
 
 }
 
 
-- (NSString*) contents
+- (NSData*) contents
 {
-    return [NSString stringWithContentsOfFile: self.absolutePath
-                                 usedEncoding: NULL
-                                        error: nil];
+    return [NSData dataWithContentsOfFile: self.absolutePath];
 }
 
 

Source/HgRevision.h

 
 - (HgFile*) fileAtPath: (NSString*)path;
 
-- (NSString*) getFileContents: (HgFile*)file error: (NSError**)outError;
+- (NSData*) getFileContents: (HgFile*)file error: (NSError**)outError;
 - (NSString*) getPathToFileContents: (HgFile*)file inTempDir: (HgTempDir*)tempDir error: (NSError**)outError;
 - (NSString*) diffFile: (HgFile*)file withRevisionNumber: (int)otherRev error: (NSError**)outError;
 - (NSString*) diffFile: (HgFile*)file withRevision: (HgRevision*)other error: (NSError**)outError;

Source/HgRevision.m

 #pragma mark FILE CONTENTS / COMPARISONS:
 
 
-- (NSString*) getFileContents: (HgFile*)file error: (NSError**)outError
+- (NSData*) getFileContents: (HgFile*)file error: (NSError**)outError
 {
     HgOperation *op = [[HgOperation alloc] initWithDirectory: file.root
                                                      command: @"cat",
         *outError = op.error;
         return nil;
     }
-    return op.output;
+    return op.outputData;
 }
 
 
 - (NSString*) getPathToFileContents: (HgFile*)file inTempDir: (HgTempDir*)tempDir error: (NSError**)outError
 {
     Assert(tempDir);
-    NSString *contents = [self getFileContents: file error: outError];
+    NSData *contents = [self getFileContents: file error: outError];
     if( ! contents )
         return nil;
     return [tempDir writeData: contents 

Source/HgUncommittedRevision.m

 - (NSString*) formattedDescription                  {return _comment;}
 - (void) setFormattedDescription: (NSString*)str    {self.comment = str;}
 
-- (NSString*) getFileContents: (HgFile*)file error: (NSError**)outError
+- (NSData*) getFileContents: (HgFile*)file error: (NSError**)outError
 {
     *outError = nil;
     return file.contents;

Source/RepoController_Actions.m

                 return;
         } else {
             NSError *error = nil;
-            NSString *contents = [rev getFileContents: file error: &error];
+            NSData *contents = [rev getFileContents: file error: &error];
             if( contents ) {
                 NSString *filename = [NSString stringWithFormat: @"(r%i) %@", rev.localNumber,file.name];
                 if( [self.tempDir openDataInEditor: contents
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.