Revision: 4391
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4391&view=rev
Author:   hofman
Date:     2008-08-13 00:12:18 +0000 (Wed, 13 Aug 2008)

Log Message:
-----------
Replace function to standardize pdfsynctex source file names by methods.

Modified Paths:
--------------
    trunk/SKPDFSynchronizer.m

Modified: trunk/SKPDFSynchronizer.m
===================================================================
--- trunk/SKPDFSynchronizer.m   2008-08-12 17:43:21 UTC (rev 4390)
+++ trunk/SKPDFSynchronizer.m   2008-08-13 00:12:18 UTC (rev 4391)
@@ -51,14 +51,6 @@
 static NSString *SKPDFSynchronizerTexExtension = @"tex";
 static NSString *SKPDFSynchronizerPdfsyncExtension = @"pdfsync";
 
-static NSString *SKTeXSourceFile(NSString *file, NSString *base) {
-    if ([[file pathExtension] length] == 0)
-        file = [file 
stringByAppendingPathExtension:SKPDFSynchronizerTexExtension];
-    if ([file isAbsolutePath] == NO)
-        file = [base stringByAppendingPathComponent:file];
-    return [file stringByStandardizingPath];
-}
-
 #pragma mark -
 
 struct SKServerFlags {
@@ -332,6 +324,19 @@
 
 #pragma mark | Server thread
 
+- (NSString *)sourceFileForFileName:(NSString *)file 
defaultExtension:(NSString *)extension {
+    if (extension && [[file pathExtension] length] == 0)
+        file = [file stringByAppendingPathExtension:extension];
+    if ([file isAbsolutePath] == NO)
+        file = [[[self fileName] stringByDeletingLastPathComponent] 
stringByAppendingPathComponent:file];
+    return [file stringByStandardizingPath];
+}
+
+- (NSString *)sourceFileForFileSystemRepresentation:(const char *)fileRep 
defaultExtension:(NSString *)extension {
+    NSString *file = (NSString 
*)CFStringCreateWithFileSystemRepresentation(NULL, fileRep);
+    return [self sourceFileForFileName:[file autorelease] 
defaultExtension:extension];
+}
+
 #pragma mark || PDFSync
 
 - (BOOL)parsePdfsyncFile:(NSString *)theFileName {
@@ -353,7 +358,6 @@
     
     if ([pdfsyncString length]) {
         
-        NSString *basePath = [theFileName stringByDeletingLastPathComponent];
         SKPDFSyncRecords *records = [[SKPDFSyncRecords alloc] init];
         NSMutableArray *files = [[NSMutableArray alloc] init];
         NSString *file;
@@ -369,7 +373,7 @@
         if ([sc scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] 
intoString:&file] &&
             [sc scanCharactersFromSet:[NSCharacterSet newlineCharacterSet] 
intoString:NULL]) {
             
-            file = SKTeXSourceFile(file, basePath);
+            file = [self sourceFileForFileName:file 
defaultExtension:SKPDFSynchronizerTexExtension];
             [files addObject:file];
             
             array = [[NSMutableArray alloc] init];
@@ -412,7 +416,7 @@
                     } else if (ch == '(') {
                         // start of a new source file
                         if ([sc scanUpToCharactersFromSet:[NSCharacterSet 
newlineCharacterSet] intoString:&file]) {
-                            file = SKTeXSourceFile(file, basePath);
+                            file = [self sourceFileForFileName:file 
defaultExtension:SKPDFSynchronizerTexExtension];
                             [files addObject:file];
                             if ([lines objectForKey:file] == nil) {
                                 array = [[NSMutableArray alloc] init];
@@ -570,23 +574,19 @@
     if (scanner)
         synctex_scanner_free(scanner);
     if (scanner = synctex_scanner_new_with_output_file([theFileName 
fileSystemRepresentation])) {
-        NSString *theSyncFileName = [(NSString 
*)CFStringCreateWithFileSystemRepresentation(NULL, 
synctex_scanner_get_synctex(scanner)) autorelease];
-        if ([theSyncFileName isAbsolutePath] == NO)
-            theSyncFileName = [[theFileName stringByDeletingLastPathComponent] 
stringByAppendingPathComponent:theSyncFileName];
-        theSyncFileName = [theSyncFileName stringByStandardizingPath];
-        [self setSyncFileName:theSyncFileName];
+        [self setSyncFileName:[self 
sourceFileForFileSystemRepresentation:synctex_scanner_get_synctex(scanner) 
defaultExtension:nil]];
         if (filenames)
             [filenames removeAllObjects];
         else
             filenames = (NSMutableDictionary 
*)CFDictionaryCreateMutable(kCFAllocatorDefault, 0, 
&kSKCaseInsensitiveStringDictionaryKeyCallBacks, 
&kCFTypeDictionaryValueCallBacks);
-        NSString *basePath = [theSyncFileName 
stringByDeletingLastPathComponent];
         NSString *filename;
         synctex_node_t node = synctex_scanner_input(scanner);
         do {
             filename = [(NSString 
*)CFStringCreateWithFileSystemRepresentation(NULL, 
synctex_scanner_get_name(scanner, synctex_node_tag(node))) autorelease];
-            [filenames setObject:filename forKey:SKTeXSourceFile(filename, 
basePath)];
+            [filenames setObject:filename forKey:[self 
sourceFileForFileName:filename defaultExtension:SKPDFSynchronizerTexExtension]];
         } while (node = synctex_node_next(node));
         isPdfsync = NO;
+        NSLog(@"%@",filenames);
         rv = [self shouldKeepRunning];
     }
     return rv;
@@ -598,7 +598,7 @@
         synctex_node_t node = synctex_next_result(scanner);
         if (node) {
             *line = synctex_node_line(node);
-            *file = SKTeXSourceFile([(NSString 
*)CFStringCreateWithFileSystemRepresentation(NULL, 
synctex_scanner_get_name(scanner, synctex_node_tag(node))) autorelease], [[self 
syncFileName] stringByDeletingLastPathComponent]);
+            *file = [self 
sourceFileForFileSystemRepresentation:synctex_scanner_get_name(scanner, 
synctex_node_tag(node)) defaultExtension:SKPDFSynchronizerTexExtension];
             rv = YES;
         }
     }
@@ -673,7 +673,7 @@
         NSPoint foundPoint = NSZeroPoint;
         BOOL success = NO;
         
-        file = SKTeXSourceFile(file, [[self fileName] 
stringByDeletingLastPathComponent]);
+        file = [self sourceFileForFileName:file 
defaultExtension:SKPDFSynchronizerTexExtension];
         
         if (isPdfsync)
             success = [self pdfsyncFindPage:&foundPageIndex 
location:&foundPoint forLine:line inFile:file];


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to