Revision: 14903
          http://sourceforge.net/p/skim-app/code/14903
Author:   hofman
Date:     2025-01-31 16:20:55 +0000 (Fri, 31 Jan 2025)
Log Message:
-----------
Fix return type of functions. Fix range specifiers in dictionary values, e.g. 
in 'with properties' argument.

Modified Paths:
--------------
    trunk/NSScriptCommand_SKExtensions.m

Modified: trunk/NSScriptCommand_SKExtensions.m
===================================================================
--- trunk/NSScriptCommand_SKExtensions.m        2025-01-30 17:24:07 UTC (rev 
14902)
+++ trunk/NSScriptCommand_SKExtensions.m        2025-01-31 16:20:55 UTC (rev 
14903)
@@ -42,9 +42,9 @@
 
 @implementation NSScriptCommand (SKExtensions)
 
-static id (*original_setReceiversSpecifier)(id, SEL, id) = NULL;
-static id (*original_setArguments)(id, SEL, id) = NULL;
-static id (*original_setDirectParameter)(id, SEL, id) = NULL;
+static void (*original_setReceiversSpecifier)(id, SEL, id) = NULL;
+static void (*original_setArguments)(id, SEL, id) = NULL;
+static void (*original_setDirectParameter)(id, SEL, id) = NULL;
 
 // Workaround for Cocoa Scripting and AppleScript bugs.
 // Cocoa Scripting does not accept range specifiers whose start/end specifier 
have an absolute container specifier, but AppleScript does not accept range 
specifiers with relative container specifiers, so we cannot return those from 
PDFSelection
@@ -52,6 +52,9 @@
     if ([object isKindOfClass:[NSArray class]]) {
         for (id subobject in (NSArray *)object)
             fixRangeSpecifiers(subobject);
+    } else if ([object isKindOfClass:[NSDictionary class]]) {
+        for (id subobject in [object allValues])
+            fixRangeSpecifiers(subobject);
     } else if ([object isKindOfClass:[NSScriptObjectSpecifier class]]) {
         fixRangeSpecifiers([(NSScriptObjectSpecifier *)object 
containerSpecifier]);
         if ([object isKindOfClass:[NSRangeSpecifier class]]) {
@@ -85,9 +88,9 @@
 }
 
 + (void)load {
-    original_setReceiversSpecifier = (id (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setReceiversSpecifier:), 
@selector(replacement_setReceiversSpecifier:));
-    original_setArguments = (id (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setArguments:), @selector(replacement_setArguments:));
-    original_setDirectParameter = (id (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setDirectParameter:), @selector(replacement_setDirectParameter:));
+    original_setReceiversSpecifier = (void (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setReceiversSpecifier:), 
@selector(replacement_setReceiversSpecifier:));
+    original_setArguments = (void (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setArguments:), @selector(replacement_setArguments:));
+    original_setDirectParameter = (void (*)(id, SEL, 
id))SKReplaceInstanceMethodImplementationFromSelector(self, 
@selector(setDirectParameter:), @selector(replacement_setDirectParameter:));
 }
 
 - (NSScriptObjectSpecifier *)subjectSpecifier {

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