+2012-12-23 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfns.m (Fns_do_applescript): Run event loop until script has
+ been executed (Bug#12969).
+ (ns_run_ascript): Chech as_script for nil, set to nil after
+ executing script.
+
2012-12-22 Martin Rudalics <rudalics@gmx.at>
* window.c (Fselect_window): Reword doc-string (Bug#13248).
void
ns_run_ascript (void)
{
- as_status = ns_do_applescript (as_script, as_result);
+ if (! NILP (as_script))
+ as_status = ns_do_applescript (as_script, as_result);
+ as_script = Qnil;
}
DEFUN ("ns-do-applescript", Fns_do_applescript, Sns_do_applescript, 1, 1, 0,
data2: NSAPP_DATA2_RUNASSCRIPT];
[NSApp postEvent: nxev atStart: NO];
- [NSApp run];
+
+ // If there are other events, the event loop may exit. Keep running
+ // until the script has been handeled. */
+ while (! NILP (as_script))
+ [NSApp run];
status = as_status;
as_status = 0;
- as_script = Qnil;
as_result = 0;
unblock_input ();
if (status == 0)