summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-07-15 11:36:23 +0100
committerRichard W.M. Jones <rjones@redhat.com>2011-07-27 15:02:22 +0100
commit7bd228bda96f37c39f112c2315d3ca29354c0ba3 (patch)
tree43969e1993fb6fd82dd87f303f19fb4a8645ca9b
parentb1e84c723d151d8b4685d64d5c089f1a9e3bfd1e (diff)
downloadlibguestfs-7bd228bda96f37c39f112c2315d3ca29354c0ba3.tar.gz
libguestfs-7bd228bda96f37c39f112c2315d3ca29354c0ba3.tar.xz
libguestfs-7bd228bda96f37c39f112c2315d3ca29354c0ba3.zip
fish: Add is_interactive flag.
Decide early (before launch) if this is going to be an interactive session, and set the is_interactive flag. (cherry picked from commit e187aa8431ccf0436d9aee03ee1e80b79f148217)
-rw-r--r--fish/fish.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/fish/fish.c b/fish/fish.c
index a57472f8..923c6dde 100644
--- a/fish/fish.c
+++ b/fish/fish.c
@@ -88,6 +88,7 @@ int inspector = 0;
int utf8_mode = 0;
int have_terminfo = 0;
int progress_bars = 0;
+int is_interactive = 0;
static void __attribute__((noreturn))
usage (int status)
@@ -384,6 +385,12 @@ main (int argc, char *argv[])
}
}
+ /* Decide here if this will be an interactive session. We have to
+ * do this as soon as possible after processing the command line
+ * args.
+ */
+ is_interactive = !file && isatty (0);
+
/* Old-style -i syntax? Since -a/-d/-N and -i was disallowed
* previously, if we have -i without any drives but with something
* on the command line, it must be old-style syntax.
@@ -486,7 +493,7 @@ main (int argc, char *argv[])
progress_bars =
override_progress_bars >= 0
? override_progress_bars
- : (optind >= argc && isatty (0));
+ : (optind >= argc && is_interactive);
if (progress_bars)
guestfs_set_event_callback (g, progress_callback,
@@ -494,7 +501,7 @@ main (int argc, char *argv[])
/* Interactive, shell script, or command(s) on the command line? */
if (optind >= argc) {
- if (isatty (0))
+ if (is_interactive)
interactive ();
else
shell_script ();