emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117156: * nsfns.m (ns_do_applescript): Surround exe


From: Jan D.
Subject: [Emacs-diffs] trunk r117156: * nsfns.m (ns_do_applescript): Surround executeAndReturnError
Date: Mon, 26 May 2014 11:16:47 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117156
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/17424
committer: Jan Djärv <address@hidden>
branch nick: trunk
timestamp: Mon 2014-05-26 13:16:47 +0200
message:
  * nsfns.m (ns_do_applescript): Surround executeAndReturnError
  with calls to ns_init_events, ns_finish_events.
  
  * nsterm.h (ns_init_events, ns_finish_events): Declare.
  
  * nsterm.m (ns_init_events, ns_finish_events): New functions.
  (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/nsfns.m                    nsfns.m-20091113204419-o5vbwnq5f7feedwu-8741
  src/nsterm.h                   nsterm.h-20091113204419-o5vbwnq5f7feedwu-8746
  src/nsterm.m                   nsterm.m-20091113204419-o5vbwnq5f7feedwu-8747
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-05-26 02:28:09 +0000
+++ b/src/ChangeLog     2014-05-26 11:16:47 +0000
@@ -1,3 +1,13 @@
+2014-05-26  Jan Djärv  <address@hidden>
+
+       * nsterm.h (ns_init_events, ns_finish_events): Declare.
+
+       * nsterm.m (ns_init_events, ns_finish_events): New functions.
+       (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
+
+       * nsfns.m (ns_do_applescript): Surround executeAndReturnError
+       with calls to ns_init_events, ns_finish_events (Bug#17424).
+
 2014-05-26  Eli Zaretskii  <address@hidden>
 
        * xdisp.c (move_it_in_display_line_to): Don't record wrap position

=== modified file 'src/nsfns.m'
--- a/src/nsfns.m       2014-04-03 20:46:04 +0000
+++ b/src/nsfns.m       2014-05-26 11:16:47 +0000
@@ -2094,9 +2094,10 @@
     [[NSAppleScript alloc] initWithSource:
                             [NSString stringWithUTF8String: SSDATA (script)]];
 
+  ns_init_events ();
   returnDescriptor = [scriptObject executeAndReturnError: &errorDict];
   [scriptObject release];
-
+  ns_finish_events ();
   *result = Qnil;
 
   if (returnDescriptor != NULL)

=== modified file 'src/nsterm.h'
--- a/src/nsterm.h      2014-04-07 20:54:16 +0000
+++ b/src/nsterm.h      2014-05-26 11:16:47 +0000
@@ -896,6 +896,9 @@
 extern unsigned long ns_get_rgb_color (struct frame *f,
                                        float r, float g, float b, float a);
 
+extern void ns_init_events ();
+extern void ns_finish_events ();
+
 /* From nsterm.m, needed in nsfont.m. */
 #ifdef __OBJC__
 extern void

=== modified file 'src/nsterm.m'
--- a/src/nsterm.m      2014-05-25 10:28:52 +0000
+++ b/src/nsterm.m      2014-05-26 11:16:47 +0000
@@ -396,6 +396,19 @@
 
    ========================================================================== 
*/
 
+void
+ns_init_events (struct input_event* ev)
+{
+  EVENT_INIT (*ev);
+  emacs_event = ev;
+}
+
+void
+ns_finish_events ()
+{
+  emacs_event = NULL;
+}
+
 static void
 hold_event (struct input_event *event)
 {
@@ -3606,8 +3619,7 @@
 
   block_input ();
   n_emacs_events_pending = 0;
-  EVENT_INIT (ev);
-  emacs_event = &ev;
+  ns_init_events (&ev);
   q_event_ptr = hold_quit;
 
   /* we manage autorelease pools by allocate/reallocate each time around
@@ -3648,7 +3660,8 @@
 
   nevents = n_emacs_events_pending;
   n_emacs_events_pending = 0;
-  emacs_event = q_event_ptr = NULL;
+  ns_finish_events ();
+  q_event_ptr = NULL;
   unblock_input ();
 
   return nevents;
@@ -3743,16 +3756,15 @@
       ns_send_appdefined (-1);
     }
 
-  EVENT_INIT (event);
   block_input ();
-  emacs_event = &event;
+  ns_init_events (&event);
   if (++apploopnr != 1)
     {
       emacs_abort ();
     }
   [NSApp run];
   --apploopnr;
-  emacs_event = NULL;
+  ns_finish_events ();
   if (nr > 0 && readfds)
     {
       c = 's';


reply via email to

[Prev in Thread] Current Thread [Next in Thread]