(child_setup): Test PRIO_PROCESS, as in sys_subshell.
[bpt/emacs.git] / src / callint.c
index 3c0cc8c..c5a57b7 100644 (file)
@@ -18,7 +18,7 @@ along with GNU Emacs; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 
-#include "config.h"
+#include <config.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "commands.h"
@@ -142,7 +142,8 @@ char *callint_argfuns[]
 static void
 check_mark ()
 {
-  Lisp_Object tem = Fmarker_buffer (current_buffer->mark);
+  Lisp_Object tem;
+  tem = Fmarker_buffer (current_buffer->mark);
   if (NILP (tem) || (XBUFFER (tem) != current_buffer))
     error ("The mark is not set now");
   if (!NILP (Vtransient_mark_mode) && NILP (Vmark_even_if_inactive)
@@ -321,14 +322,20 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
        }
       else if (*string == '@')
        {
-         Lisp_Object event =
-           XVECTOR (this_command_keys)->contents[next_event];
+         Lisp_Object event;
 
+         event = XVECTOR (this_command_keys)->contents[next_event];
          if (EVENT_HAS_PARAMETERS (event)
              && XTYPE (event = XCONS (event)->cdr) == Lisp_Cons
              && XTYPE (event = XCONS (event)->car) == Lisp_Cons
              && XTYPE (event = XCONS (event)->car) == Lisp_Window)
-           Fselect_window (event);
+           {
+             if (MINI_WINDOW_P (XWINDOW (event))
+                 && NILP (call1 (intern ("minibuffer-window-active-p"),
+                                 event)))
+               error ("Attempt to select inactive minibuffer window");
+             Fselect_window (event);
+           }
          string++;
        }
       else break;