Revision: 7392
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7392&view=rev
Author:   hofman
Date:     2011-07-26 14:04:07 +0000 (Tue, 26 Jul 2011)

Log Message:
-----------
remove intermediate method to get selection ranges for applescript

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

Modified: trunk/PDFSelection_SKExtensions.m
===================================================================
--- trunk/PDFSelection_SKExtensions.m   2011-07-26 13:37:27 UTC (rev 7391)
+++ trunk/PDFSelection_SKExtensions.m   2011-07-26 14:04:07 UTC (rev 7392)
@@ -161,51 +161,6 @@
     return NSNotFound;
 }
 
-- (NSPointerArray *)safeRangesOnPage:(PDFPage *)page {
-    if ([self respondsToSelector:@selector(numberOfTextRangesOnPage:)] && 
[self respondsToSelector:@selector(rangeAtIndex:onPage:)]) {
-        NSInteger i, iMax = [self numberOfTextRangesOnPage:page];
-        NSPointerArray *ranges = [NSPointerArray rangePointerArray];
-        NSRange range;
-        for (i = 0; i < iMax; i++) {
-            range = [self rangeAtIndex:i onPage:page];
-            [ranges addPointer:&range];
-        }
-        return ranges;
-    } else if ([self respondsToSelector:@selector(indexOfCharactersOnPage:)]) {
-        NSIndexSet *indexes = [self indexOfCharactersOnPage:page];
-        if (indexes) {
-            NSUInteger idx = [indexes firstIndex];
-            NSUInteger prevIdx = NSNotFound;
-            NSRange range = NSMakeRange(NSNotFound, 0);
-            NSPointerArray *ranges = [NSPointerArray rangePointerArray];
-            while (idx != NSNotFound) {
-                if (prevIdx == NSNotFound || idx != prevIdx + 1) {
-                    if (range.length)
-                        [ranges addPointer:&range];
-                    range = NSMakeRange(idx, 1);
-                } else {
-                    range.length++;
-                }
-                prevIdx = idx;
-                idx = [indexes indexGreaterThanIndex:idx];
-            }
-            if (range.length)
-                [ranges addPointer:&range];
-            return ranges;
-        }
-    } else if ([self respondsToSelector:@selector(numberOfRangesOnPage:)] && 
[self respondsToSelector:@selector(rangeAtIndex:onPage:)]) {
-        NSInteger i, iMax = [self numberOfRangesOnPage:page];
-        NSPointerArray *ranges = [NSPointerArray rangePointerArray];
-        NSRange range;
-        for (i = 0; i < iMax; i++) {
-            range = [self rangeAtIndex:i onPage:page];
-            [ranges addPointer:&range];
-        }
-        return ranges;
-    }
-    return nil;
-}
-
 - (PDFPage *)safeFirstPage {
     if ([self respondsToSelector:@selector(numberOfTextRangesOnPage:)] && 
[self respondsToSelector:@selector(rangeAtIndex:onPage:)]) {
         for (PDFPage *page in [self pages]) {
@@ -664,23 +619,62 @@
 - (id)objectSpecifier {
     NSMutableArray *ranges = [NSMutableArray array];
     for (PDFPage *page in [self pages]) {
-        NSRange lastRange = NSMakeRange(0, 0);
-        NSPointerArray *rangePointers = [self safeRangesOnPage:page];
-        NSUInteger i, iMax = [rangePointers count];
-        for (i = 0; i < iMax; i++) {
-            NSRange range = *(NSRange *)[rangePointers pointerAtIndex:i];
-            if (range.length == 0) {
-            } else if (lastRange.length == 0) {
-                lastRange = range;
-            } else if (NSMaxRange(lastRange) == range.location) {
-                lastRange.length += range.length;
-            } else {
+        if ([self respondsToSelector:@selector(numberOfTextRangesOnPage:)] && 
[self respondsToSelector:@selector(rangeAtIndex:onPage:)]) {
+            NSInteger i, iMax = [self numberOfTextRangesOnPage:page];
+            NSRange range, lastRange = NSMakeRange(0, 0);
+            for (i = 0; i < iMax; i++) {
+                range = [self rangeAtIndex:i onPage:page];
+                if (range.length == 0) {
+                } else if (lastRange.length == 0) {
+                    lastRange = range;
+                } else if (NSMaxRange(lastRange) == range.location) {
+                    lastRange.length += range.length;
+                } else {
+                    addSpecifierWithCharacterRangeAndPage(ranges, lastRange, 
page);
+                    lastRange = range;
+                }
+            }
+            if (lastRange.length)
                 addSpecifierWithCharacterRangeAndPage(ranges, lastRange, page);
-                lastRange = range;
+        } else if ([self 
respondsToSelector:@selector(indexOfCharactersOnPage:)]) {
+            NSIndexSet *indexes = [self indexOfCharactersOnPage:page];
+            if (indexes) {
+                NSUInteger idx = [indexes firstIndex];
+                NSUInteger prevIdx = NSNotFound;
+                NSRange range = NSMakeRange(NSNotFound, 0);
+                while (idx != NSNotFound) {
+                    if (prevIdx == NSNotFound || idx != prevIdx + 1) {
+                        if (range.length)
+                            addSpecifierWithCharacterRangeAndPage(ranges, 
range, page);
+                        range = NSMakeRange(idx, 1);
+                    } else {
+                        range.length++;
+                    }
+                    prevIdx = idx;
+                    idx = [indexes indexGreaterThanIndex:idx];
+                }
+                if (range.length)
+                    addSpecifierWithCharacterRangeAndPage(ranges, range, page);
             }
+        } else if ([self respondsToSelector:@selector(numberOfRangesOnPage:)] 
&& [self respondsToSelector:@selector(rangeAtIndex:onPage:)]) {
+            NSInteger i, iMax = [self numberOfRangesOnPage:page];
+            NSRange range, lastRange = NSMakeRange(0, 0);
+            for (i = 0; i < iMax; i++) {
+                range = [self rangeAtIndex:i onPage:page];
+                if (range.length == 0) {
+                } else if (lastRange.length == 0) {
+                    lastRange = range;
+                } else if (NSMaxRange(lastRange) == range.location) {
+                    lastRange.length += range.length;
+                } else {
+                    addSpecifierWithCharacterRangeAndPage(ranges, lastRange, 
page);
+                    lastRange = range;
+                }
+            }
+            if (lastRange.length)
+                addSpecifierWithCharacterRangeAndPage(ranges, lastRange, page);
         }
-        if (lastRange.length)
-            addSpecifierWithCharacterRangeAndPage(ranges, lastRange, page);
+        
     }
     return ranges;
 }


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

------------------------------------------------------------------------------
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to