aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrian Robert <[email protected]>2008-07-27 19:20:38 +0000
committerAdrian Robert <[email protected]>2008-07-27 19:20:38 +0000
commit583ff3c3ba1cfdbf6a7d809a402c5cddc40427da (patch)
tree242f65fcd37e7bf863191677c5587c616f174156 /src
parent9e2a2647758db83b490e2993aa31cd4607305a82 (diff)
rename do-applescript,do_applescript in keeping with NS code conventions
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/nsfns.m176
2 files changed, 94 insertions, 87 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index dff7b73886..49c13b4fdf 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-27 Adrian Robert <[email protected]>
+
+ * nsfns.m (do-applescript, do_applescript): Rename to
+ ns-do-applescript, ns_do_applescript, and move within file.
+
2008-07-27 Dan Nicolaescu <[email protected]>
Remove support for Mac Carbon.
diff --git a/src/nsfns.m b/src/nsfns.m
index b8e28f1d13..493885f353 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1999,6 +1999,93 @@ DEFUN ("ns-convert-utf8-nfd-to-nfc", Fns_convert_utf8_nfd_to_nfc,
}
+#ifdef NS_IMPL_COCOA
+
+/* Compile and execute the AppleScript SCRIPT and return the error
+ status as function value. A zero is returned if compilation and
+ execution is successful, in which case *RESULT is set to a Lisp
+ string or a number containing the resulting script value. Otherwise,
+ 1 is returned. */
+static int
+ns_do_applescript (script, result)
+ Lisp_Object script, *result;
+{
+ NSAppleEventDescriptor *desc;
+ NSDictionary* errorDict;
+ NSAppleEventDescriptor* returnDescriptor = NULL;
+
+ NSAppleScript* scriptObject =
+ [[NSAppleScript alloc] initWithSource:
+ [NSString stringWithUTF8String: SDATA (script)]];
+
+ returnDescriptor = [scriptObject executeAndReturnError: &errorDict];
+ [scriptObject release];
+
+ *result = Qnil;
+
+ if (returnDescriptor != NULL)
+ {
+ // successful execution
+ if (kAENullEvent != [returnDescriptor descriptorType])
+ {
+ *result = Qt;
+ // script returned an AppleScript result
+ if ((typeUnicodeText == [returnDescriptor descriptorType]) ||
+ (typeUTF16ExternalRepresentation
+ == [returnDescriptor descriptorType]) ||
+ (typeUTF8Text == [returnDescriptor descriptorType]) ||
+ (typeCString == [returnDescriptor descriptorType]))
+ {
+ desc = [returnDescriptor coerceToDescriptorType: typeUTF8Text];
+ if (desc)
+ *result = build_string([[desc stringValue] UTF8String]);
+ }
+ else
+ {
+ /* use typeUTF16ExternalRepresentation? */
+ // coerce the result to the appropriate ObjC type
+ desc = [returnDescriptor coerceToDescriptorType: typeUTF8Text];
+ if (desc)
+ *result = make_number([desc int32Value]);
+ }
+ }
+ }
+ else
+ {
+ // no script result, return error
+ return 1;
+ }
+ return 0;
+}
+
+DEFUN ("ns-do-applescript", Fns_do_applescript, Sns_do_applescript, 1, 1, 0,
+ doc: /* Execute AppleScript SCRIPT and return the result. If
+compilation and execution are successful, the resulting script value
+is returned as a string, a number or, in the case of other constructs,
+t. In case the execution fails, an error is signaled. */)
+ (script)
+ Lisp_Object script;
+{
+ Lisp_Object result;
+ long status;
+
+ CHECK_STRING (script);
+ check_ns ();
+
+ BLOCK_INPUT;
+ status = ns_do_applescript (script, &result);
+ UNBLOCK_INPUT;
+ if (status == 0)
+ return result;
+ else if (!STRINGP (result))
+ error ("AppleScript error %d", status);
+ else
+ error ("%s", SDATA (result));
+}
+#endif
+
+
+
/* ==========================================================================
Miscellaneous functions not called through hooks
@@ -2121,92 +2208,6 @@ x_sync (Lisp_Object frame)
========================================================================== */
-#ifdef NS_IMPL_COCOA
-
-/* Compile and execute the AppleScript SCRIPT and return the error
- status as function value. A zero is returned if compilation and
- execution is successful, in which case *RESULT is set to a Lisp
- string or a number containing the resulting script value. Otherwise,
- 1 is returned. */
-
-static int
-do_applescript (script, result)
- Lisp_Object script, *result;
-{
- NSAppleEventDescriptor *desc;
- NSDictionary* errorDict;
- NSAppleEventDescriptor* returnDescriptor = NULL;
-
- NSAppleScript* scriptObject =
- [[NSAppleScript alloc] initWithSource:
- [NSString stringWithUTF8String: SDATA (script)]];
-
- returnDescriptor = [scriptObject executeAndReturnError: &errorDict];
- [scriptObject release];
-
- *result = Qnil;
-
- if (returnDescriptor != NULL)
- {
- // successful execution
- if (kAENullEvent != [returnDescriptor descriptorType])
- {
- *result = Qt;
- // script returned an AppleScript result
- if ((typeUnicodeText == [returnDescriptor descriptorType]) ||
- (typeUTF16ExternalRepresentation
- == [returnDescriptor descriptorType]) ||
- (typeUTF8Text == [returnDescriptor descriptorType]) ||
- (typeCString == [returnDescriptor descriptorType]))
- {
- desc = [returnDescriptor coerceToDescriptorType: typeUTF8Text];
- if (desc)
- *result = build_string([[desc stringValue] UTF8String]);
- }
- else
- {
- /* use typeUTF16ExternalRepresentation? */
- // coerce the result to the appropriate ObjC type
- desc = [returnDescriptor coerceToDescriptorType: typeUTF8Text];
- if (desc)
- *result = make_number([desc int32Value]);
- }
- }
- }
- else
- {
- // no script result, return error
- return 1;
- }
- return 0;
-}
-
-DEFUN ("do-applescript", Fdo_applescript, Sdo_applescript, 1, 1, 0,
- doc: /* Execute AppleScript SCRIPT and return the result. If
-compilation and execution are successful, the resulting script value
-is returned as a string, a number or, in the case of other constructs,
-t. In case the execution fails, an error is signaled. */)
- (script)
- Lisp_Object script;
-{
- Lisp_Object result;
- long status;
-
- CHECK_STRING (script);
- check_ns ();
-
- BLOCK_INPUT;
- status = do_applescript (script, &result);
- UNBLOCK_INPUT;
- if (status == 0)
- return result;
- else if (!STRINGP (result))
- error ("AppleScript error %d", status);
- else
- error ("%s", SDATA (result));
-}
-#endif
-
DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
doc: /* Return t if the current Nextstep display supports the color COLOR.
The optional argument FRAME is currently ignored. */)
@@ -2313,6 +2314,7 @@ If omitted or nil, that stands for the selected frame's display. */)
return make_number ((int) [ns_get_screen (display) frame].size.height);
}
+
DEFUN ("display-usable-bounds", Fns_display_usable_bounds,
Sns_display_usable_bounds, 0, 1, 0,
doc: /*Return the bounds of the usable part of the screen.
@@ -2639,7 +2641,7 @@ be used as the image of the icon representing the frame. */);
defsubr (&Sns_font_name);
defsubr (&Sns_list_colors);
#ifdef NS_IMPL_COCOA
- defsubr (&Sdo_applescript);
+ defsubr (&Sns_do_applescript);
#endif
defsubr (&Sxw_color_defined_p);
defsubr (&Sxw_color_values);