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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit