Revision: 12812 http://sourceforge.net/p/skim-app/code/12812 Author: hofman Date: 2022-03-19 10:22:26 +0000 (Sat, 19 Mar 2022) Log Message: ----------- check for hyphen and soft hyphen, using custom character set. Use method instead of function.
Modified Paths: -------------- trunk/NSCharacterSet_SKExtensions.h trunk/NSCharacterSet_SKExtensions.m trunk/PDFSelection_SKExtensions.m Modified: trunk/NSCharacterSet_SKExtensions.h =================================================================== --- trunk/NSCharacterSet_SKExtensions.h 2022-03-18 22:40:33 UTC (rev 12811) +++ trunk/NSCharacterSet_SKExtensions.h 2022-03-19 10:22:26 UTC (rev 12812) @@ -43,4 +43,5 @@ + (id)nonWhitespaceAndNewlineCharacterSet; + (id)URLBookmarkNameAllowedCharacterSet; + (id)URLGenericAllowedCharacterSet; ++ (id)hyphensCharacterSet; @end Modified: trunk/NSCharacterSet_SKExtensions.m =================================================================== --- trunk/NSCharacterSet_SKExtensions.m 2022-03-18 22:40:33 UTC (rev 12811) +++ trunk/NSCharacterSet_SKExtensions.m 2022-03-19 10:22:26 UTC (rev 12812) @@ -70,4 +70,16 @@ return URLGenericAllowedCharacterSet; } ++ (id)hyphensCharacterSet { + static NSCharacterSet *hyphensCharacterSet = nil; + if (hyphensCharacterSet == nil) { + NSMutableCharacterSet *tmpSet = [[NSMutableCharacterSet alloc] init]; + [tmpSet addCharactersInRange:NSMakeRange(0x2D, 1)]; + [tmpSet addCharactersInRange:NSMakeRange(0xAD, 1)]; + hyphensCharacterSet = [tmpSet copy]; + [tmpSet release]; + } + return hyphensCharacterSet; +} + @end Modified: trunk/PDFSelection_SKExtensions.m =================================================================== --- trunk/PDFSelection_SKExtensions.m 2022-03-18 22:40:33 UTC (rev 12811) +++ trunk/PDFSelection_SKExtensions.m 2022-03-19 10:22:26 UTC (rev 12812) @@ -44,6 +44,7 @@ #import "SKMainDocument.h" #import "NSPointerArray_SKExtensions.h" #import "NSColor_SKExtensions.h" +#import "NSCharacterSet_SKExtensions.h" #define SKIncludeNewlinesFromEnclosedTextKey @"SKIncludeNewlinesFromEnclosedText" @@ -76,12 +77,12 @@ return [[self safeFirstPage] displayLabel]; } -static inline BOOL consecutiveSelections(PDFSelection *sel1, PDFSelection *sel2) { - PDFPage *page = [sel1 safeLastPage]; - if ([[sel2 safeFirstPage] isEqual:page] == NO) +- (BOOL)isConsecutiveToSelection:(PDFSelection *)selection { + PDFPage *page = [selection safeLastPage]; + if ([[self safeFirstPage] isEqual:page] == NO) return NO; - NSUInteger i = [sel1 safeIndexOfLastCharacterOnPage:page]; - NSUInteger j = [sel2 safeIndexOfFirstCharacterOnPage:page]; + NSUInteger i = [selection safeIndexOfLastCharacterOnPage:page]; + NSUInteger j = [self safeIndexOfFirstCharacterOnPage:page]; if (i + 1 == j) return YES; if (i + 2 != j) @@ -98,8 +99,8 @@ for (PDFSelection *line in lines) { NSString *str = [[[line string] stringByRemovingAliens] stringByCollapsingWhitespaceAndNewlinesAndRemovingSurroundingWhitespaceAndNewlines]; if ([str length] == 0) continue; - NSInteger l = [string length]; - if (l > 1 && [string characterAtIndex:l - 1] == '-' && [[NSCharacterSet letterCharacterSet] characterIsMember:[string characterAtIndex:l - 2]] && consecutiveSelections(lastLine, line)) + NSUInteger l = [string length]; + if (l > 1 && [[NSCharacterSet hyphensCharacterSet] characterIsMember:[string characterAtIndex:l - 1]] && [[NSCharacterSet letterCharacterSet] characterIsMember:[string characterAtIndex:l - 2]] && [line isConsecutiveToSelection:lastLine]) [string deleteCharactersInRange:NSMakeRange(l - 1, 1)]; else if (l > 0) [string appendString:@" "]; 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