Hello,
  current CVS version of m4 sets interactive mode iff the stdin is a
tty.  I think it would be better to set interactive mode iff the
stdin, the stdout, and the stderr are a tty.  (Something like the
patch below.)

Background: autom4te currently calls "m4 </dev/null" to ensure
non-interactive mode for both m4-1.4 and m4-2.0.
To teach autom4te to handle stdin correctly, I would like to remove
the redirection.
I mailed about that to m4-discuss, and the above proposal is a
variation of what Gary proposed there:
http://lists.gnu.org/archive/html/m4-discuss/2006-04/threads.html
(Yes, autom4te could make use of the option `-b', testing first
whether it is available, yet I would prefer the above solution.)

Wdyt about this?

Stepan Kasal


Index: src/main.c
===================================================================
RCS file: /cvsroot/m4/m4/src/main.c,v
retrieving revision 1.85
diff -u -r1.85 main.c
--- src/main.c  20 Sep 2006 04:04:29 -0000      1.85
+++ src/main.c  20 Sep 2006 11:13:54 -0000
@@ -263,7 +263,7 @@
   setup_stackovf_trap (argv, envp, stackovf_handler);
 #endif
 
-  if (isatty (STDIN_FILENO))
+  if (isatty (STDIN_FILENO) && isatty (STDOUT_FILENO) && isatty 
(STDERR_FILENO))
     m4_set_interactive_opt (context, true);
 
   if (getenv ("POSIXLY_CORRECT"))


_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches

Reply via email to