Make `--batch-mode' without `--interactive' imply non-interactive.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 16 Apr 2011 00:25:41 +0000 (00:25 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 16 Apr 2011 00:32:33 +0000 (00:32 +0000)
In this case, don't check whether stdin/stdout/stderr are ttys to
determine whether we are interactive.

This keeps `scheme --batch-mode' from futzing with the tty interrupt
characters, so that if you run it from a script, there is no window
during which ^G becomes the terminal's interrupt character and ^C its
quit character.  E.g., if you have set `stty intr ^C', then Scheme
won't interfere with that while you run your script.

src/etc/build-bands.sh
src/etc/compile.sh
src/microcode/uxtop.c

index d9fa10c3ef9d6a2b2530cb844b11ad225a41b189..7aca80ba6d0b4b982fc49c26603d3b3b5f21146a 100755 (executable)
@@ -29,7 +29,7 @@ set -e
 FASL=`get_fasl_file`
 
 run_cmd_in_dir runtime ../microcode/scheme --library ../lib --heap 6000 \
-    --fasl "${FASL}" <<EOF
+    --fasl "${FASL}" --batch-mode <<EOF
 (begin
   (disk-save "../lib/runtime.com")
   (load-option (quote compiler))
index d1dbfb2b02be1a0847622f42610d042aa98537f5..eb242568098b303669f887b060216058fa4a7b7b 100755 (executable)
@@ -26,7 +26,7 @@ set -e
 
 . etc/functions.sh
 
-run_cmd "${@}" --heap 6000 --stack 200 <<EOF
+run_cmd "${@}" --heap 6000 --stack 200 --batch-mode <<EOF
 (begin
   (load "etc/compile.scm")
   (compile-everything))
index 26b8c38a27ab2bff4a87e30336077b80344cc769..611f3e521a0ed3cfd47e8d80f68d7f9c8b67ed49 100644 (file)
@@ -74,11 +74,15 @@ OS_initialize (void)
 {
   initialize_interruptable_extent ();
   {
-    interactive =
-      (option_force_interactive
-       || (isatty (STDIN_FILENO))
-       || (isatty (STDOUT_FILENO))
-       || (isatty (STDERR_FILENO)));
+    if (option_force_interactive)
+      interactive = true;
+    else if (option_batch_mode)
+      interactive = false;
+    else
+      interactive
+       = ((isatty (STDIN_FILENO))
+          || (isatty (STDOUT_FILENO))
+          || (isatty (STDERR_FILENO)));
     /* If none of the stdio streams is a terminal, disassociate us
        from the controlling terminal so that we're not affected by
        keyboard interrupts or hangup signals.  However, if we're