]> code.delx.au - gnu-emacs/blobdiff - src/vmsproc.c
(Fcall_process): Call prepare_menu_bars.
[gnu-emacs] / src / vmsproc.c
index 35823b32fc1c01deb40dd3973deb0f228b6491ff..777ae61876ed70001824103fb6338bbf3e5f6acb 100644 (file)
@@ -437,7 +437,7 @@ if you quit, the process is killed.")
 
   CHECK_STRING (args[0], 0);
 
-  if (nargs <= 1 || NULL (args[1]))
+  if (nargs <= 1 || NILP (args[1]))
     args[1] = build_string ("NLA0:");
   else
     args[1] = Fexpand_file_name (args[1], current_buffer->directory);
@@ -573,6 +573,9 @@ if you quit, the process is killed.")
       return Qnil;
     }
 
+  if (!NILP (display) && INTERACTIVE)
+    prepare_menu_bars ();
+
   record_unwind_protect (call_process_cleanup,
                         Fcons (make_number (fd[0]), make_number (pid)));
 
@@ -589,12 +592,12 @@ if you quit, the process is killed.")
       if (vs->iosb[0] & 1)
        {
          immediate_quit = 0;
-         if (!NULL (buffer))
+         if (!NILP (buffer))
            {
              vs->iosb[1] = clean_vms_buffer (vs->inputBuffer, vs->iosb[1]);
              InsCStr (vs->inputBuffer, vs->iosb[1]);
            }
-         if (!NULL (display) && INTERACTIVE)
+         if (!NILP (display) && INTERACTIVE)
          redisplay_preserve_echo_area ();
          immediate_quit = 1;
          QUIT;
@@ -604,9 +607,10 @@ if you quit, the process is killed.")
       else
        break;
     }
-    sys$dassgn (inchannel);
-    sys$dassgn (outchannel);
-    give_back_vms_process_stuff (vs);
+
+  sys$dassgn (inchannel);
+  sys$dassgn (outchannel);
+  give_back_vms_process_stuff (vs);
 
   /* Wait for it to terminate, unless it already has.  */
   wait_for_termination (pid);
@@ -615,9 +619,7 @@ if you quit, the process is killed.")
 
   set_current_buffer (old);
 
-  unbind_to (count);
-
-  return Qnil;
+  return unbind_to (count, Qnil);
 }
 
 create_process (process, new_argv)