# HG changeset patch # User Adrian Robert # Date 1217186438 0 # Node ID 68cf271f3d309397686c8aa147f4da0a89b8f0f1 # Parent 9592c50233abb420880b3d529082b1cd1bfb0747 rename do-applescript,do_applescript in keeping with NS code conventions diff -r 9592c50233ab -r 68cf271f3d30 lisp/ChangeLog --- a/lisp/ChangeLog Sun Jul 27 18:24:48 2008 +0000 +++ b/lisp/ChangeLog Sun Jul 27 19:20:38 2008 +0000 @@ -1,3 +1,7 @@ +2008-07-27 Adrian Robert + + * term/ns-win.el (do-applescript): New alias in carbon-compat section. + 2008-07-27 Dan Nicolaescu Remove support for Mac Carbon. diff -r 9592c50233ab -r 68cf271f3d30 lisp/term/ns-win.el --- a/lisp/term/ns-win.el Sun Jul 27 18:24:48 2008 +0000 +++ b/lisp/term/ns-win.el Sun Jul 27 19:20:38 2008 +0000 @@ -319,6 +319,8 @@ (defvaralias 'mac-control-modifier 'ns-control-modifier) (defvaralias 'mac-option-modifier 'ns-option-modifier) (defvaralias 'mac-function-modifier 'ns-function-modifier) +(defalias 'do-applescript 'ns-do-applescript) + (defvar menu-bar-ns-file-menu) ; below @@ -328,7 +330,6 @@ "Toggle Nextstep extended platform support features. When this mode is active (no modeline indicator): - File menu is altered slightly in keeping with conventions. - - Meta-up, meta-down are bound to scroll window up and down one line. - Screen position is preserved in scrolling. - Transient mark mode is activated" :init-value nil diff -r 9592c50233ab -r 68cf271f3d30 src/ChangeLog --- a/src/ChangeLog Sun Jul 27 18:24:48 2008 +0000 +++ b/src/ChangeLog Sun Jul 27 19:20:38 2008 +0000 @@ -1,3 +1,8 @@ +2008-07-27 Adrian Robert + + * nsfns.m (do-applescript, do_applescript): Rename to + ns-do-applescript, ns_do_applescript, and move within file. + 2008-07-27 Dan Nicolaescu Remove support for Mac Carbon. diff -r 9592c50233ab -r 68cf271f3d30 src/nsfns.m --- a/src/nsfns.m Sun Jul 27 18:24:48 2008 +0000 +++ b/src/nsfns.m Sun Jul 27 19:20:38 2008 +0000 @@ -1999,6 +1999,93 @@ } +#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 @@ ========================================================================== */ -#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 @@ 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 @@ 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);