Revision: 4195
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4195&view=rev
Author:   hofman
Date:     2008-07-12 04:06:04 -0700 (Sat, 12 Jul 2008)

Log Message:
-----------
Wrap pdfsync records in a custom data type rather than mutable dictionary.

Modified Paths:
--------------
    trunk/SKPDFSynchronizer.h
    trunk/SKPDFSynchronizer.m
    trunk/Skim.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/SKPDFSyncRecord.h
    trunk/SKPDFSyncRecord.m

Added: trunk/SKPDFSyncRecord.h
===================================================================
--- trunk/SKPDFSyncRecord.h                             (rev 0)
+++ trunk/SKPDFSyncRecord.h     2008-07-12 11:06:04 UTC (rev 4195)
@@ -0,0 +1,70 @@
+//
+//  SKPDFSyncRecord.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 7/12/08.
+/*
+ This software is Copyright (c) 2008
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+
[EMAIL PROTECTED] SKPDFSyncRecord : NSObject {
+    int recordIndex;
+    int pageIndex;
+    NSPoint point;
+    NSString *file;
+    int line;
+}
+
+- (id)initWithRecordIndex:(int)aRecordIndex;
+
+- (int)recordIndex;
+- (void)setRecordIndex:(int)newRecordIndex;
+
+- (int)pageIndex;
+- (void)setPageIndex:(int)newPageIndex;
+
+- (NSPoint)point;
+- (void)setPoint:(NSPoint)newPoint;
+
+- (float)x;
+- (float)y;
+
+- (NSString *)file;
+- (void)setFile:(NSString *)newFile;
+
+- (int)line;
+- (void)setLine:(int)newLine;
+
[EMAIL PROTECTED]

Added: trunk/SKPDFSyncRecord.m
===================================================================
--- trunk/SKPDFSyncRecord.m                             (rev 0)
+++ trunk/SKPDFSyncRecord.m     2008-07-12 11:06:04 UTC (rev 4195)
@@ -0,0 +1,115 @@
+//
+//  SKPDFSyncRecord.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 7/12/08.
+/*
+ This software is Copyright (c) 2008
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SKPDFSyncRecord.h"
+
+
[EMAIL PROTECTED] SKPDFSyncRecord
+
+- (id)initWithRecordIndex:(int)aRecordIndex {
+    if (self = [super init]) {
+        recordIndex = aRecordIndex;
+        pageIndex = NSNotFound;
+        point = NSZeroPoint;
+        file = nil;
+        line = -1;
+    }
+    return self;
+}
+
+- (void)dealloc {
+    [file release];
+    [super dealloc];
+}
+
+- (int)recordIndex {
+    return recordIndex;
+}
+
+- (void)setRecordIndex:(int)newRecordIndex {
+    if (recordIndex != newRecordIndex) {
+        recordIndex = newRecordIndex;
+    }
+}
+
+- (int)pageIndex {
+    return pageIndex;
+}
+
+- (void)setPageIndex:(int)newPageIndex {
+    if (pageIndex != newPageIndex) {
+        pageIndex = newPageIndex;
+    }
+}
+
+- (NSPoint)point {
+    return point;
+}
+
+- (void)setPoint:(NSPoint)newPoint {
+    point = newPoint;
+}
+
+- (float)x {
+    return point.x;
+}
+
+- (float)y {
+    return point.y;
+}
+
+- (NSString *)file {
+    return file;
+}
+
+- (void)setFile:(NSString *)newFile {
+    if (file != newFile) {
+        [file release];
+        file = [newFile retain];
+    }
+}
+
+- (int)line {
+    return line;
+}
+
+- (void)setLine:(int)newLine {
+    line = newLine;
+}
+
[EMAIL PROTECTED]

Modified: trunk/SKPDFSynchronizer.h
===================================================================
--- trunk/SKPDFSynchronizer.h   2008-07-12 10:04:22 UTC (rev 4194)
+++ trunk/SKPDFSynchronizer.h   2008-07-12 11:06:04 UTC (rev 4195)
@@ -86,9 +86,3 @@
 - (void)synchronizer:(SKPDFSynchronizer *)synchronizer foundLine:(int)line 
inFile:(NSString *)file;
 - (void)synchronizer:(SKPDFSynchronizer *)synchronizer 
foundLocation:(NSPoint)point atPageIndex:(unsigned int)pageIndex;
 @end
-
-
[EMAIL PROTECTED] NSMutableDictionary (SKExtensions)
-- (void)setIntValue:(int)value forKey:(id)key;
-- (void)setFloatValue:(float)value forKey:(id)key;
[EMAIL PROTECTED]

Modified: trunk/SKPDFSynchronizer.m
===================================================================
--- trunk/SKPDFSynchronizer.m   2008-07-12 10:04:22 UTC (rev 4194)
+++ trunk/SKPDFSynchronizer.m   2008-07-12 11:06:04 UTC (rev 4195)
@@ -37,6 +37,7 @@
  */
 
 #import "SKPDFSynchronizer.h"
+#import "SKPDFSyncRecord.h"
 #import "NSCharacterSet_SKExtensions.h"
 #import "NSScanner_SKExtensions.h"
 #import <Carbon/Carbon.h>
@@ -46,12 +47,6 @@
 #define SYNC_TO_PDF(coord) ((float)coord / 65536.0)
 #define PDF_TO_SYNC(coord) (int)(coord * 65536.0)
 
-static NSString *SKPDFSynchronizerRecordIndexKey = @"recordIndex";
-static NSString *SKPDFSynchronizerPageKey = @"page";
-static NSString *SKPDFSynchronizerXKey = @"x";
-static NSString *SKPDFSynchronizerYKey = @"y";
-static NSString *SKPDFSynchronizerFileKey = @"file";
-static NSString *SKPDFSynchronizerLineKey = @"line";
 static NSString *SKPDFSynchronizerTexExtension = @"tex";
 static NSString *SKPDFSynchronizerPdfsyncExtension = @"pdfsync";
 
@@ -63,11 +58,11 @@
     return file;
 }
 
-static NSMutableDictionary *SKRecordForRecordIndex(NSMutableDictionary 
*records, int recordIndex) {
+static SKPDFSyncRecord *SKRecordForRecordIndex(NSMutableDictionary *records, 
int recordIndex) {
     NSNumber *recordNumber = [[NSNumber alloc] initWithInt:recordIndex];
-    NSMutableDictionary *record = [records objectForKey:recordNumber];
+    SKPDFSyncRecord *record = [records objectForKey:recordNumber];
     if (record == nil) {
-        record = [[NSMutableDictionary alloc] 
initWithObjectsAndKeys:recordNumber, SKPDFSynchronizerRecordIndexKey, nil];
+        record = [[SKPDFSyncRecord alloc] initWithRecordIndex:recordIndex];
         [records setObject:record forKey:recordNumber];
         [record release];
     }
@@ -353,7 +348,7 @@
         NSString *file;
         int recordIndex, line, pageIndex;
         float x, y;
-        NSMutableDictionary *record;
+        SKPDFSyncRecord *record;
         NSMutableArray *array;
         unichar ch;
         NSScanner *sc = [[NSScanner alloc] initWithString:pdfsyncString];
@@ -382,8 +377,8 @@
                             // we ignore the column
                             [sc scanInt:NULL];
                             record = SKRecordForRecordIndex(records, 
recordIndex);
-                            [record setObject:file 
forKey:SKPDFSynchronizerFileKey];
-                            [record setIntValue:line 
forKey:SKPDFSynchronizerLineKey];
+                            [record setFile:file];
+                            [record setLine:line];
                             [[lines objectForKey:file] addObject:record];
                         }
                     } else if (ch == 'p') {
@@ -391,9 +386,8 @@
                         [sc scanString:@"*" intoString:NULL] || [sc 
scanString:@"+" intoString:NULL];
                         if ([sc scanInt:&recordIndex] && [sc scanFloat:&x] && 
[sc scanFloat:&y]) {
                             record = SKRecordForRecordIndex(records, 
recordIndex);
-                            [record setIntValue:[pages count] - 1 
forKey:SKPDFSynchronizerPageKey];
-                            [record setFloatValue:SYNC_TO_PDF(x) + pdfOffset.x 
forKey:SKPDFSynchronizerXKey];
-                            [record setFloatValue:SYNC_TO_PDF(y) + pdfOffset.y 
forKey:SKPDFSynchronizerYKey];
+                            [record setPageIndex:[pages count] - 1];
+                            [record setPoint:NSMakePoint(SYNC_TO_PDF(x) + 
pdfOffset.x, SYNC_TO_PDF(y) + pdfOffset.y)];
                             [[pages lastObject] addObject:record];
                         }
                     } else if (ch == 's') {
@@ -427,9 +421,9 @@
                     [sc scanCharactersFromSet:[NSCharacterSet 
newlineCharacterSet] intoString:NULL];
                 }
                 
-                NSSortDescriptor *lineSortDescriptor = [[[NSSortDescriptor 
alloc] initWithKey:SKPDFSynchronizerLineKey ascending:YES] autorelease];
-                NSSortDescriptor *xSortDescriptor = [[[NSSortDescriptor alloc] 
initWithKey:SKPDFSynchronizerXKey ascending:YES] autorelease];
-                NSSortDescriptor *ySortDescriptor = [[[NSSortDescriptor alloc] 
initWithKey:SKPDFSynchronizerYKey ascending:NO] autorelease];
+                NSSortDescriptor *lineSortDescriptor = [[[NSSortDescriptor 
alloc] initWithKey:@"line" ascending:YES] autorelease];
+                NSSortDescriptor *xSortDescriptor = [[[NSSortDescriptor alloc] 
initWithKey:@"x" ascending:YES] autorelease];
+                NSSortDescriptor *ySortDescriptor = [[[NSSortDescriptor alloc] 
initWithKey:@"y" ascending:NO] autorelease];
                 
                 [[lines allValues] 
makeObjectsPerformSelector:@selector(sortUsingDescriptors:)
                                                    withObject:[NSArray 
arrayWithObjects:lineSortDescriptor, nil]];
@@ -493,29 +487,28 @@
     BOOL rv = NO;
     if (pageIndex < [pages count]) {
         
-        NSDictionary *record = nil;
-        NSDictionary *beforeRecord = nil;
-        NSDictionary *afterRecord = nil;
+        SKPDFSyncRecord *record = nil;
+        SKPDFSyncRecord *beforeRecord = nil;
+        SKPDFSyncRecord *afterRecord = nil;
         NSMutableDictionary *atRecords = [NSMutableDictionary dictionary];
         NSEnumerator *recordEnum = [[pages objectAtIndex:pageIndex] 
objectEnumerator];
         
         while (record = [recordEnum nextObject]) {
-            if ([record objectForKey:SKPDFSynchronizerLineKey] == nil)
+            if ([record line] == -1)
                 continue;
-            float x = [[record objectForKey:SKPDFSynchronizerXKey] floatValue];
-            float y = [[record objectForKey:SKPDFSynchronizerYKey] floatValue];
-            if (y > NSMaxY(rect)) {
+            NSPoint p = [record point];
+            if (p.y > NSMaxY(rect)) {
                 beforeRecord = record;
-            } else if (y < NSMinY(rect)) {
+            } else if (p.y < NSMinY(rect)) {
                 afterRecord = record;
                 break;
-            } else if (x < NSMinX(rect)) {
+            } else if (p.x < NSMinX(rect)) {
                 beforeRecord = record;
-            } else if (x > NSMaxX(rect)) {
+            } else if (p.x > NSMaxX(rect)) {
                 afterRecord = record;
                 break;
             } else {
-                [atRecords setObject:record forKey:[NSNumber 
numberWithFloat:fabsf(x - point.x)]];
+                [atRecords setObject:record forKey:[NSNumber 
numberWithFloat:fabsf(p.x - point.x)]];
             }
         }
         
@@ -524,17 +517,15 @@
             NSNumber *nearest = [[[atRecords allKeys] 
sortedArrayUsingSelector:@selector(compare:)] objectAtIndex:0];
             record = [atRecords objectForKey:nearest];
         } else if (beforeRecord && afterRecord) {
-            float beforeX = [[beforeRecord objectForKey:SKPDFSynchronizerXKey] 
floatValue];
-            float beforeY = [[beforeRecord objectForKey:SKPDFSynchronizerYKey] 
floatValue];
-            float afterX = [[afterRecord objectForKey:SKPDFSynchronizerXKey] 
floatValue];
-            float afterY = [[afterRecord objectForKey:SKPDFSynchronizerYKey] 
floatValue];
-            if (beforeY - point.y < point.y - afterY)
+            NSPoint beforePoint = [beforeRecord point];
+            NSPoint afterPoint = [afterRecord point];
+            if (beforePoint.y - point.y < point.y - afterPoint.y)
                 record = beforeRecord;
-            else if (beforeY - point.y > point.y - afterY)
+            else if (beforePoint.y - point.y > point.y - afterPoint.y)
                 record = afterRecord;
-            else if (beforeX - point.x < point.x - afterX)
+            else if (beforePoint.x - point.x < point.x - afterPoint.x)
                 record = beforeRecord;
-            else if (beforeX - point.x > point.x - afterX)
+            else if (beforePoint.x - point.x > point.x - afterPoint.x)
                 record = afterRecord;
             else
                 record = beforeRecord;
@@ -545,8 +536,8 @@
         }
         
         if (record) {
-            *line = [[record objectForKey:SKPDFSynchronizerLineKey] intValue];
-            *file = [record objectForKey:SKPDFSynchronizerFileKey];
+            *line = [record line];
+            *file = [record file];
             rv = YES;
         }
     }
@@ -557,16 +548,16 @@
     BOOL rv = NO;
     if ([lines objectForKey:file]) {
         
-        NSDictionary *record = nil;
-        NSDictionary *beforeRecord = nil;
-        NSDictionary *afterRecord = nil;
-        NSDictionary *atRecord = nil;
+        SKPDFSyncRecord *record = nil;
+        SKPDFSyncRecord *beforeRecord = nil;
+        SKPDFSyncRecord *afterRecord = nil;
+        SKPDFSyncRecord *atRecord = nil;
         NSEnumerator *recordEnum = [[lines objectForKey:file] 
objectEnumerator];
         
         while (record = [recordEnum nextObject]) {
-            if ([record objectForKey:SKPDFSynchronizerPageKey] == nil)
+            if ([record pageIndex] == NSNotFound)
                 continue;
-            int l = [[record objectForKey:SKPDFSynchronizerLineKey] intValue];
+            int l = [record line];
             if (l < line) {
                 beforeRecord = record;
             } else if (l > line) {
@@ -581,8 +572,8 @@
         if (atRecord) {
             record = atRecord;
         } else if (beforeRecord && afterRecord) {
-            int beforeLine = [[beforeRecord 
objectForKey:SKPDFSynchronizerLineKey] intValue];
-            int afterLine = [[afterRecord 
objectForKey:SKPDFSynchronizerLineKey] intValue];
+            int beforeLine = [beforeRecord line];
+            int afterLine = [afterRecord line];
             if (beforeLine - line > line - afterLine)
                 record = afterRecord;
             else
@@ -594,8 +585,8 @@
         }
         
         if (record) {
-            *pageIndex = [[record objectForKey:SKPDFSynchronizerPageKey] 
unsignedIntValue];
-            *point = NSMakePoint([[record objectForKey:SKPDFSynchronizerXKey] 
floatValue], [[record objectForKey:SKPDFSynchronizerYKey] floatValue]);
+            *pageIndex = [record pageIndex];
+            *point = [record point];
             rv = YES;
         }
     }
@@ -668,21 +659,3 @@
 }
 
 @end
-
-#pragma mark -
-
[EMAIL PROTECTED] NSMutableDictionary (SKExtensions)
-
-- (void)setIntValue:(int)value forKey:(id)key {
-    NSNumber *number = [[NSNumber alloc] initWithInt:value];
-    [self setValue:number forKey:key];
-    [number release];
-}
-
-- (void)setFloatValue:(float)value forKey:(id)key {
-    NSNumber *number = [[NSNumber alloc] initWithFloat:value];
-    [self setValue:number forKey:key];
-    [number release];
-}
-
[EMAIL PROTECTED]

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2008-07-12 10:04:22 UTC (rev 
4194)
+++ trunk/Skim.xcodeproj/project.pbxproj        2008-07-12 11:06:04 UTC (rev 
4195)
@@ -80,6 +80,7 @@
                CE327A460C11BF6700DB4BEB /* NoteTypeSheet.nib in Resources */ = 
{isa = PBXBuildFile; fileRef = CE327A440C11BF6700DB4BEB /* NoteTypeSheet.nib 
*/; };
                CE3364310E2761E9005F99E6 /* synctex_parser.c in Sources */ = 
{isa = PBXBuildFile; fileRef = CE33639F0E26E120005F99E6 /* synctex_parser.c */; 
};
                CE3364320E2761EF005F99E6 /* libz.dylib in Frameworks */ = {isa 
= PBXBuildFile; fileRef = CE3363CD0E26E378005F99E6 /* libz.dylib */; };
+               CE3366DF0E28BCFA005F99E6 /* SKPDFSyncRecord.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE3366DE0E28BCFA005F99E6 /* SKPDFSyncRecord.m 
*/; };
                CE3400AC0E0034DF00A7FFE6 /* NSMenu_SKExtensions.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE3400AB0E0034DF00A7FFE6 /* 
NSMenu_SKExtensions.m */; };
                CE3401E00E01378A00A7FFE6 /* NSAttributedString_SKExtensions.m 
in Sources */ = {isa = PBXBuildFile; fileRef = CE3401DF0E01378A00A7FFE6 /* 
NSAttributedString_SKExtensions.m */; };
                CE3401E60E01388700A7FFE6 /* NSNumber_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE3401E50E01388700A7FFE6 /* 
NSNumber_SKExtensions.m */; };
@@ -500,6 +501,8 @@
                CE33639F0E26E120005F99E6 /* synctex_parser.c */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = 
synctex_parser.c; path = vendorsrc/jeromelaurens/synctex_parser.c; sourceTree = 
"<group>"; };
                CE3363A00E26E120005F99E6 /* synctex_parser.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = 
synctex_parser.h; path = vendorsrc/jeromelaurens/synctex_parser.h; sourceTree = 
"<group>"; };
                CE3363CD0E26E378005F99E6 /* libz.dylib */ = {isa = 
PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = 
libz.dylib; path = /usr/lib/libz.dylib; sourceTree = "<absolute>"; };
+               CE3366DD0E28BCFA005F99E6 /* SKPDFSyncRecord.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKPDFSyncRecord.h; sourceTree = "<group>"; };
+               CE3366DE0E28BCFA005F99E6 /* SKPDFSyncRecord.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKPDFSyncRecord.m; sourceTree = "<group>"; };
                CE3400AA0E0034DF00A7FFE6 /* NSMenu_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
NSMenu_SKExtensions.h; sourceTree = "<group>"; };
                CE3400AB0E0034DF00A7FFE6 /* NSMenu_SKExtensions.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= NSMenu_SKExtensions.m; sourceTree = "<group>"; };
                CE3401DE0E01378A00A7FFE6 /* NSAttributedString_SKExtensions.h 
*/ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.h; path = NSAttributedString_SKExtensions.h; sourceTree = 
"<group>"; };
@@ -1346,6 +1349,8 @@
                                CE8978CC0CBFC70B00EA2D98 /* SKTag.m */,
                                CEE54DEF0DA2EF0E0037169F /* 
SKPDFAnnotationTemporary.h */,
                                CEE54DF00DA2EF0E0037169F /* 
SKPDFAnnotationTemporary.m */,
+                               CE3366DD0E28BCFA005F99E6 /* SKPDFSyncRecord.h 
*/,
+                               CE3366DE0E28BCFA005F99E6 /* SKPDFSyncRecord.m 
*/,
                        );
                        name = Data;
                        sourceTree = "<group>";
@@ -2103,6 +2108,7 @@
                                CE665A140E1BF43700D0704D /* 
SKBookmarkOutlineView.m in Sources */,
                                CEC3AD240E23EC0300F40B0B /* 
PDFAnnotationLink_SKExtensions.m in Sources */,
                                CE3364310E2761E9005F99E6 /* synctex_parser.c in 
Sources */,
+                               CE3366DF0E28BCFA005F99E6 /* SKPDFSyncRecord.m 
in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };


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

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to