diff options
author | Adrian Perez <aperez@igalia.com> | 2009-11-23 01:54:35 +0100 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-11-23 06:02:06 +0100 |
commit | d024ab4a046b0eb53bfdbb7eb9d5f25a52172271 (patch) | |
tree | 14722e17f426b347efb2b8add2149198bcc32755 /notmuch-new.c | |
parent | ceee152fca2be5cec9dd5873748539ff2642c91b (diff) |
ANSI escapes in "new" only when output is a tty
When running "notmuch new --verbose", ANSI escapes are used. This may not be
desirable when the output of the command is *not* being sent to a terminal
(e.g. when piping output into another command). In that case each file
processed is printed in a new line and ANSI escapes are not used at all.
Diffstat (limited to 'notmuch-new.c')
-rw-r--r-- | notmuch-new.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/notmuch-new.c b/notmuch-new.c index a2b30bdc..8172b498 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -180,10 +180,15 @@ add_files_recursive (notmuch_database_t *notmuch, state->processed_files++; if (state->verbose) { - printf ("\r\033[K%i/%i: %s\r", + if (state->output_is_a_tty) + printf("\r\033[K"); + + printf ("%i/%i: %s", state->processed_files, state->total_files, next); + + putchar((state->output_is_a_tty) ? '\r' : '\n'); fflush (stdout); } @@ -282,9 +287,7 @@ add_files (notmuch_database_t *notmuch, return NOTMUCH_STATUS_FILE_ERROR; } - if (isatty (fileno (stdout)) && ! debugger_is_active () - && ! state->verbose) - { + if (state->output_is_a_tty && ! debugger_is_active () && ! state->verbose) { /* Setup our handler for SIGALRM */ memset (&action, 0, sizeof (struct sigaction)); action.sa_handler = handle_sigalrm; @@ -405,6 +408,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) int i; add_files_state.verbose = 0; + add_files_state.output_is_a_tty = isatty (fileno (stdout)); for (i = 0; i < argc && argv[i][0] == '-'; i++) { if (STRNCMP_LITERAL (argv[i], "--verbose") == 0) { |