Revision: 14887 http://sourceforge.net/p/skim-app/code/14887 Author: hofman Date: 2025-01-27 10:41:29 +0000 (Mon, 27 Jan 2025) Log Message: ----------- Check wither string is not nil before creating URL, no need for initializer overrides to allow for nil string or path
Modified Paths: -------------- trunk/NSURL_SKExtensions.m trunk/SKMainWindowController_UI.m trunk/SKScriptMenu.m Modified: trunk/NSURL_SKExtensions.m =================================================================== --- trunk/NSURL_SKExtensions.m 2025-01-27 10:00:55 UTC (rev 14886) +++ trunk/NSURL_SKExtensions.m 2025-01-27 10:41:29 UTC (rev 14887) @@ -37,7 +37,6 @@ */ #import "NSURL_SKExtensions.h" -#import "SKRuntime.h" #import "NSCharacterSet_SKExtensions.h" #import "NSImage_SKExtensions.h" @@ -53,22 +52,6 @@ @implementation NSURL (SKExtensions) -static id (*original_initFileURLWithPath)(id, SEL, id) = NULL; -static id (*original_initWithString)(id, SEL, id) = NULL; - -- (id)replacement_initFileURLWithPath:(NSString *)path { - return path == nil ? nil : original_initFileURLWithPath(self, _cmd, path); -} - -- (id)replacement_initWithString:(NSString *)URLString { - return URLString == nil ? nil : original_initWithString(self, _cmd, URLString); -} - -+ (void)load { - original_initFileURLWithPath = (id (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(initFileURLWithPath:), @selector(replacement_initFileURLWithPath:)); - original_initWithString = (id (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(initWithString:), @selector(replacement_initWithString:)); -} - + (BOOL)canReadURLFromPasteboard:(NSPasteboard *)pboard { return [pboard canReadObjectForClasses:@[[SKURL class]] options:@{}] || [pboard canReadItemWithDataConformingToTypes:@[NSURLPboardType, NSFilenamesPboardType]]; Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2025-01-27 10:00:55 UTC (rev 14886) +++ trunk/SKMainWindowController_UI.m 2025-01-27 10:41:29 UTC (rev 14887) @@ -1448,7 +1448,7 @@ #pragma mark SKPDFView delegate protocol - (NSURL *)redirectRelativeLinkURL:(NSURL *)url { - if ([url scheme] == nil && [[self document] fileURL]) + if (url && [url scheme] == nil && [[self document] fileURL]) url = [[NSURL URLWithString:[url absoluteString] relativeToURL:[[self document] fileURL]] absoluteURL] ?: url; if ([url isFileURL] && [[[self document] fileType] isEqualToString:SKDocumentTypePDFBundle] && [url checkResourceIsReachableAndReturnError:NULL] == NO) { NSString *path = [url path]; Modified: trunk/SKScriptMenu.m =================================================================== --- trunk/SKScriptMenu.m 2025-01-27 10:00:55 UTC (rev 14886) +++ trunk/SKScriptMenu.m 2025-01-27 10:41:29 UTC (rev 14887) @@ -240,7 +240,8 @@ } - (void)executeScript:(id)sender { - [[[NSUserScriptTask alloc] initWithURL:[NSURL fileURLWithPath:[sender representedObject] isDirectory:NO] error:NULL] executeWithCompletionHandler:nil]; + if ([[sender representedObject] isKindOfClass:[NSString class]]) + [[[NSUserScriptTask alloc] initWithURL:[NSURL fileURLWithPath:[sender representedObject] isDirectory:NO] error:NULL] executeWithCompletionHandler:nil]; } @end 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