Revision: 12091
http://sourceforge.net/p/skim-app/code/12091
Author: hofman
Date: 2020-12-27 15:55:36 +0000 (Sun, 27 Dec 2020)
Log Message:
-----------
Use URL components to build skim urLs
Modified Paths:
--------------
trunk/NSDocument_SKExtensions.m
trunk/PDFPage_SKExtensions.m
trunk/SKBookmark.m
trunk/SKMainDocument.m
Modified: trunk/NSDocument_SKExtensions.m
===================================================================
--- trunk/NSDocument_SKExtensions.m 2020-12-25 15:49:15 UTC (rev 12090)
+++ trunk/NSDocument_SKExtensions.m 2020-12-27 15:55:36 UTC (rev 12091)
@@ -82,7 +82,10 @@
- (IBAction)copyURL:(id)sender {
NSURL *fileURL = [self fileURL];
if (fileURL) {
- NSURL *skimURL = [NSURL URLWithString:[@"skim"
stringByAppendingString:[[[fileURL filePathURL] absoluteString]
substringFromIndex:4]]];
+ NSURLComponents *components = [[NSURLComponents alloc]
initWithURL:fileURL resolvingAgainstBaseURL:NO];
+ [components setScheme:@"skim"];
+ NSURL *skimURL = [components URL];
+ [components release];
NSPasteboard *pboard = [NSPasteboard generalPasteboard];
[pboard clearContents];
[pboard writeObjects:[NSArray arrayWithObjects:skimURL, nil]];
Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m 2020-12-25 15:49:15 UTC (rev 12090)
+++ trunk/PDFPage_SKExtensions.m 2020-12-27 15:55:36 UTC (rev 12091)
@@ -388,8 +388,12 @@
NSURL *fileURL = [[self containingDocument] fileURL];
if (fileURL == nil)
return nil;
- NSString *skimURLString = [NSString stringWithFormat:@"skim%@#page=%lu",
[[[fileURL filePathURL] absoluteString] substringFromIndex:4], (unsigned
long)([self pageIndex] + 1)];
- return [NSURL URLWithString:skimURLString];
+ NSURLComponents *components = [[NSURLComponents alloc] initWithURL:fileURL
resolvingAgainstBaseURL:NO];
+ [components setScheme:@"skim"];
+ [components setFragment:[NSString stringWithFormat:@"page=%lu", (unsigned
long)([self pageIndex] + 1)]];
+ NSURL *skimURL = [components URL];
+ [components release];
+ return skimURL;
}
static inline BOOL lineRectsOverlap(NSRect r1, NSRect r2, BOOL rotated) {
Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m 2020-12-25 15:49:15 UTC (rev 12090)
+++ trunk/SKBookmark.m 2020-12-27 15:55:36 UTC (rev 12091)
@@ -312,14 +312,20 @@
if ([self bookmarkType] == SKBookmarkTypeSeparator)
return nil;
SKBookmark *bookmark = self;
- NSMutableArray *components = [NSMutableArray array];
+ NSMutableString *path = [NSMutableString string];
while ([bookmark parent] != nil) {
NSString *component = [[bookmark label]
stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet
URLBookmarkNameAllowedCharacterSet]];
- [components insertObject:component atIndex:0];
+ [path replaceCharactersInRange:NSMakeRange(0, 0) withString:component];
+ [path replaceCharactersInRange:NSMakeRange(0, 0) withString:@"/"];
bookmark = [bookmark parent];
}
- NSString *skimURLString = [@"skim://bookmarks/"
stringByAppendingString:[components componentsJoinedByString:@"/"]];
- return [NSURL URLWithString:skimURLString];
+ NSURLComponents *components = [[NSURLComponents alloc] init];
+ [components setScheme:@"skim"];
+ [components setHost:@"bookmarks"];
+ [components setPath:path];
+ NSURL *url = [components URL];
+ [components release];
+ return url;
}
@end
Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m 2020-12-25 15:49:15 UTC (rev 12090)
+++ trunk/SKMainDocument.m 2020-12-27 15:55:36 UTC (rev 12091)
@@ -1028,7 +1028,11 @@
NSString *searchString = [mainWindowController searchString];
if ([searchString length] > 0) {
searchString = [searchString
stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet
URLQueryAllowedCharacterSet]];
- skimURL = [NSURL URLWithString:[[skimURL absoluteString]
stringByAppendingFormat:@"&search=%@", searchString]];
+ NSURLComponents *components = [[NSURLComponents alloc]
initWithURL:skimURL resolvingAgainstBaseURL:NO];
+ NSString *fragment = [components fragment];
+ [components setFragment:[fragment length] ? [fragment
stringByAppendingFormat:@"&search=%@", searchString] : [@"search="
stringByAppendingString:searchString]];
+ skimURL = [components URL];
+ [components release];
}
NSPasteboard *pboard = [NSPasteboard generalPasteboard];
[pboard clearContents];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit