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