From c74b3cb41e5498ed863325fa060f5a1f2d1902d0 Mon Sep 17 00:00:00 2001 From: crunchy Date: Fri, 13 Sep 2002 19:06:29 +0000 Subject: extended handling of SIGINT; support for stdin being a tty --- mpiosh/mpiosh.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'mpiosh/mpiosh.c') diff --git a/mpiosh/mpiosh.c b/mpiosh/mpiosh.c index 2db4e16..3bcf6d4 100644 --- a/mpiosh/mpiosh.c +++ b/mpiosh/mpiosh.c @@ -2,7 +2,7 @@ /* * - * $Id: mpiosh.c,v 1.3 2002/09/13 15:20:25 crunchy Exp $ + * $Id: mpiosh.c,v 1.4 2002/09/13 19:06:30 crunchy Exp $ * * Author: Andreas Büsching * @@ -346,6 +346,7 @@ main(int argc, char *argv[]) { char ** cmds, **walk; mpiosh_cmd_t * cmd; struct sigaction sigc; + int interactive = 1; UNUSED(argc); UNUSED(argv); @@ -371,18 +372,23 @@ main(int argc, char *argv[]) { mpiosh_init(); mpiosh.dev = mpio_init(); - if (!mpiosh.dev) { - printf("could not find MPIO player.\n"); - } - if (mpiosh.card == MPIO_INTERNAL_MEM) mpiosh.prompt = PROMPT_INT; else mpiosh.prompt = PROMPT_EXT; + if (!isatty(fileno(stdin))) { + interactive = 0; + mpiosh.prompt = NULL; + } + + if (!mpiosh.dev && interactive) { + printf("could not find MPIO player.\n"); + } + while ((line = readline(mpiosh.prompt))) { if (*line == '\0') continue; - + cmds = mpiosh_command_split(line); if (cmds[0][0] == '\0') { @@ -411,6 +417,9 @@ main(int argc, char *argv[]) { walk++; } free(cmds); + + /* reset abort state */ + mpiosh_cancel = 0; } mpiosh_cmd_quit(NULL); -- cgit v1.2.3