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

Reply via email to