[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xentoollog: provide XTL_STDIOSTREAM_PROGRESS_USE_CR
commit 2d25bffafb5c0fdacf2e40a89a0a22b57e18789d Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> AuthorDate: Tue Jan 7 18:07:30 2014 +0000 Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CommitDate: Wed Mar 19 13:42:13 2014 +0000 xentoollog: provide XTL_STDIOSTREAM_PROGRESS_USE_CR Provide flags XTL_STDIOSTREAM_PROGRESS_USE_CR XTL_STDIOSTREAM_PROGRESS_NO_CR to allow the caller to force, or disable, the use of \r-based overwriting of progress messages. In the implementation, rename the variable "tty" to "progress_use_cr". Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Olaf Hering <olaf@xxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/libxc/xentoollog.h | 8 +++++--- tools/libxc/xtl_logger_stdio.c | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/tools/libxc/xentoollog.h b/tools/libxc/xentoollog.h index 6d36dd9..85d3da9 100644 --- a/tools/libxc/xentoollog.h +++ b/tools/libxc/xentoollog.h @@ -65,9 +65,11 @@ struct xentoollog_logger { /*---------- facilities for consuming log messages ----------*/ -#define XTL_STDIOSTREAM_SHOW_PID 01u -#define XTL_STDIOSTREAM_SHOW_DATE 02u -#define XTL_STDIOSTREAM_HIDE_PROGRESS 04u +#define XTL_STDIOSTREAM_SHOW_PID 001u +#define XTL_STDIOSTREAM_SHOW_DATE 002u +#define XTL_STDIOSTREAM_HIDE_PROGRESS 004u +#define XTL_STDIOSTREAM_PROGRESS_USE_CR 010u /* default is to */ +#define XTL_STDIOSTREAM_PROGRESS_NO_CR 020u /* use \r to ttys */ typedef struct xentoollog_logger_stdiostream xentoollog_logger_stdiostream; diff --git a/tools/libxc/xtl_logger_stdio.c b/tools/libxc/xtl_logger_stdio.c index aa5501f..47ee257 100644 --- a/tools/libxc/xtl_logger_stdio.c +++ b/tools/libxc/xtl_logger_stdio.c @@ -28,6 +28,7 @@ #include <string.h> #include <stdlib.h> #include <errno.h> +#include <stdbool.h> struct xentoollog_logger_stdiostream { xentoollog_logger vtable; @@ -35,7 +36,7 @@ struct xentoollog_logger_stdiostream { xentoollog_level min_level; unsigned flags; int progress_erase_len, progress_last_percent; - int tty; + bool progress_use_cr; }; static void progress_erase(xentoollog_logger_stdiostream *lg) { @@ -119,7 +120,7 @@ static void stdiostream_progress(struct xentoollog_logger *logger_in, lg->progress_last_percent = percent; - if (!lg->tty) { + if (!lg->progress_use_cr) { stdiostream_message(logger_in, this_level, context, "%s: %lu/%lu %3d%%", doing_what, done, total, percent); @@ -167,7 +168,18 @@ xentoollog_logger_stdiostream *xtl_createlogger_stdiostream newlogger.f = f; newlogger.min_level = min_level; newlogger.flags = flags; - newlogger.tty = isatty(fileno(newlogger.f)) > 0; + + switch (flags & (XTL_STDIOSTREAM_PROGRESS_USE_CR | + XTL_STDIOSTREAM_PROGRESS_NO_CR)) { + case XTL_STDIOSTREAM_PROGRESS_USE_CR: newlogger.progress_use_cr = 1; break; + case XTL_STDIOSTREAM_PROGRESS_NO_CR: newlogger.progress_use_cr = 0; break; + case 0: + newlogger.progress_use_cr = isatty(fileno(newlogger.f)) > 0; + break; + default: + errno = EINVAL; + return 0; + } if (newlogger.flags & XTL_STDIOSTREAM_SHOW_DATE) tzset(); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |