Revision: 14997 http://sourceforge.net/p/skim-app/code/14997 Author: hofman Date: 2025-03-21 17:38:09 +0000 (Fri, 21 Mar 2025) Log Message: ----------- break up selection in separated ranges to get cleaned string
Modified Paths: -------------- trunk/PDFSelection_SKExtensions.m Modified: trunk/PDFSelection_SKExtensions.m =================================================================== --- trunk/PDFSelection_SKExtensions.m 2025-03-21 14:19:00 UTC (rev 14996) +++ trunk/PDFSelection_SKExtensions.m 2025-03-21 17:38:09 UTC (rev 14997) @@ -89,7 +89,7 @@ } - (NSString *)compactedCleanedString { - NSArray *lines = [self selectionsByLine]; + NSArray *lines = [self selectionComponentsOnPage:nil]; if ([lines count] < 2) return [[[self string] stringByRemovingAliens] stringByCollapsingWhitespaceAndNewlinesAndRemovingSurroundingWhitespaceAndNewlines]; NSMutableString *string = [NSMutableString string]; @@ -237,22 +237,17 @@ } - (NSArray *)selectionComponentsOnPage:(PDFPage *)page { - if (page == nil) { - page = [self safeFirstPage]; - if (page == nil) - return @[]; - } - NSMutableArray *components = [NSMutableArray array]; for (PDFSelection *sel in [self selectionsByLine]) { - NSUInteger count = [sel numberOfTextRangesOnPage:page]; + PDFPage *aPage = page ?: [[sel pages] firstObject]; + NSUInteger count = [sel numberOfTextRangesOnPage:aPage]; if (count == 1) { [components addObject:sel]; } else if (count > 1) { NSRange range = NSMakeRange(0, 0); for (NSUInteger i = 0; i < count; i++) { - NSRange nextRange = [sel rangeAtIndex:i onPage:page]; + NSRange nextRange = [sel rangeAtIndex:i onPage:aPage]; if (nextRange.length == 0) { } else if (range.length == 0) { range = nextRange; @@ -259,12 +254,12 @@ } else if (NSMaxRange(range) == nextRange.location) { range.length += nextRange.length; } else { - [components addObject:[page selectionForRange:range]]; + [components addObject:[aPage selectionForRange:range]]; range = nextRange; } } if (range.length) - [components addObject:[page selectionForRange:range]]; + [components addObject:[aPage selectionForRange:range]]; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit