#import <Cocoa/Cocoa.h>
+#import <ITFoundation/ITOSAScript.h>
#import <ITFoundation/ITAppleEventCenter.h>
#import <ITFoundation/ITDebug.h>
};
08FB77AEFE84172EC02AAC07 = {
children = (
+ 370786C005C0B4D700E6D1BA,
+ 370786C105C0B4D700E6D1BA,
7CA50B2B054E77950074E1D9,
7CA50B2C054E77950074E1D9,
7CA50B2F054E77A00074E1D9,
//322
//323
//324
+//370
+//371
+//372
+//373
+//374
+ 370786C005C0B4D700E6D1BA = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ITOSAScript.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 370786C105C0B4D700E6D1BA = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = ITOSAScript.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 370786C205C0B4D700E6D1BA = {
+ fileRef = 370786C005C0B4D700E6D1BA;
+ isa = PBXBuildFile;
+ settings = {
+ ATTRIBUTES = (
+ Public,
+ );
+ };
+ };
+ 370786C305C0B4D700E6D1BA = {
+ fileRef = 370786C105C0B4D700E6D1BA;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//370
+//371
+//372
+//373
+//374
//3D0
//3D1
//3D2
8DC2EF510486A6940098B216,
7CA50D7E054E7C600074E1D9,
7CA50B2D054E77950074E1D9,
+ 370786C205C0B4D700E6D1BA,
7CA50B31054E77A00074E1D9,
3D2D8A13055E07D800F59C27,
2AB93A3205705A0C007E748F,
7CF6C931057D65B0007FEC13,
7CF6C939057D65BA007FEC13,
7C97DC2F05B614300013E85F,
+ 370786C305C0B4D700E6D1BA,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
--- /dev/null
+/*
+ * ITFoundation
+ * ITOSAScript
+ * An extended NSAppleScript that allows any OSA language.
+ *
+ * Original Author : Kent Sutherland <ksutherland@ithinksw.com>
+ * Responsibility : Kent Sutherland <ksutherland@ithinksw.com>
+ * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ *
+ * Copyright (c) 2002 - 2004 iThink Software.
+ * All Rights Reserved
+ *
+ */
+
+#import <Foundation/Foundation.h>
+#import <Carbon/Carbon.h>
+
+@interface ITOSAScript : NSObject {
+ NSString *_source;
+ unsigned long _scriptSubtype;
+}
+
+- (id)initWithContentsOfFile:(NSString *)path;
+- (id)initWithSource:(NSString *)source;
+
+- (NSString *)source;
+- (void)setSource:(NSString *)newSource;
+- (unsigned long)scriptSubtype;
+- (void)setScriptSubtype:(unsigned long)newSubtype;
+
+- (NSString *)execute;
+
+@end
--- /dev/null
+/*
+ * ITFoundation
+ * ITOSAScript
+ * An extended NSAppleScript that allows any OSA language.
+ *
+ * Original Author : Kent Sutherland <ksutherland@ithinksw.com>
+ * Responsibility : Kent Sutherland <ksutherland@ithinksw.com>
+ * Responsibility : Joseph Spiros <joseph.spiros@ithinksw.com>
+ *
+ * Copyright (c) 2002 - 2004 iThink Software.
+ * All Rights Reserved
+ *
+ */
+
+/*
+Script Subtypes:
+ kAppleScriptSubtype - AppleScript (Default)
+ 'Jscr' - JavaScript (if installed)
+*/
+
+#import "ITOSAScript.h"
+
+@implementation ITOSAScript
+
+- (id)init
+{
+ if ( (self = [super init]) ) {
+ _source = nil;
+ _scriptSubtype = kAppleScriptSubtype; //Default to AppleScript
+ }
+ return self;
+}
+
+- (id)initWithContentsOfFile:(NSString *)path
+{
+ if ( (self = [super init]) ) {
+ _source = [[NSString alloc] initWithContentsOfFile:path];
+ _scriptSubtype = kAppleScriptSubtype; //Default to AppleScript
+ }
+ return self;
+}
+
+- (id)initWithSource:(NSString *)source
+{
+ if ( (self = [super init]) ) {
+ [self setSource:source];
+ _scriptSubtype = kAppleScriptSubtype; //Default to AppleScript
+ }
+ return self;
+}
+
+- (void)dealloc
+{
+ [_source release];
+ [super dealloc];
+}
+
+- (NSString *)source
+{
+ return _source;
+}
+
+- (void)setSource:(NSString *)newSource
+{
+ [_source release];
+ _source = [newSource copy];
+}
+
+- (unsigned long)scriptSubtype
+{
+ return _scriptSubtype;
+}
+
+- (void)setScriptSubtype:(unsigned long)newSubtype
+{
+ _scriptSubtype = newSubtype;
+}
+
+- (NSString *)execute
+{
+ AEDesc scriptDesc, resultDesc;
+ Size length;
+ NSString *result;
+ Ptr buffer;
+
+ AECreateDesc(typeChar, [_source cString], [_source cStringLength], &scriptDesc);
+
+ OSADoScript(OpenDefaultComponent(kOSAComponentType, _scriptSubtype), &scriptDesc, kOSANullScript, typeChar, kOSAModeCanInteract, &resultDesc);
+
+ length = AEGetDescDataSize(&resultDesc);
+ buffer = malloc(length);
+
+ AEGetDescData(&resultDesc, buffer, length);
+ AEDisposeDesc(&scriptDesc);
+ AEDisposeDesc(&resultDesc);
+ result = [NSString stringWithCString:buffer length:length];
+ if (![result isEqualToString:@""] &&
+ ([result characterAtIndex:0] == '\"') &&
+ ([result characterAtIndex:[result length] - 1] == '\"'))
+ {
+ result = [result substringWithRange:NSMakeRange(1, [result length] - 2)];
+ }
+ free(buffer);
+ buffer = NULL;
+ return result;
+}
+
+@end