I have an error state which includes an ascii85 section that fails to decode. If we exit early when using a pager, it confuses the terminal.
Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> --- src/intel/tools/aubinator_error_decode.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/intel/tools/aubinator_error_decode.c b/src/intel/tools/aubinator_error_decode.c index 21386fef8a9..5ce6932f2ba 100644 --- a/src/intel/tools/aubinator_error_decode.c +++ b/src/intel/tools/aubinator_error_decode.c @@ -52,6 +52,7 @@ static bool option_full_decode = true; static bool option_print_offsets = true; static enum { COLOR_AUTO, COLOR_ALWAYS, COLOR_NEVER } option_color; static char *xml_path = NULL; +static bool pager = false; static uint32_t print_head(unsigned int reg) @@ -427,8 +428,12 @@ read_data_file(FILE *file) if (ascii85_start) { count = ascii85_decode(line+1, &data, line[0] == ':'); if (count == 0) { - fprintf(stderr, "ASCII85 decode failed.\n"); - exit(1); + fprintf(pager ? stdout : stderr, + "ascii85 decode failed on line %d\n", line_number); + if (pager) + continue; + else + exit(1); } decode(spec, buffer_name, ring_name, @@ -608,7 +613,7 @@ main(int argc, char *argv[]) const char *path; struct stat st; int c, i, error; - bool help = false, pager = true; + bool help = false; const struct option aubinator_opts[] = { { "help", no_argument, (int *) &help, true }, { "no-pager", no_argument, (int *) &pager, false }, @@ -619,6 +624,7 @@ main(int argc, char *argv[]) { NULL, 0, NULL, 0 } }; + pager = true; i = 0; while ((c = getopt_long(argc, argv, "", aubinator_opts, &i)) != -1) { switch (c) { @@ -682,7 +688,9 @@ main(int argc, char *argv[]) if (option_color == COLOR_AUTO) option_color = isatty(1) ? COLOR_ALWAYS : COLOR_NEVER; - if (isatty(1) && pager) + if (!isatty(1)) + pager = false; + if (pager) setup_pager(); if (S_ISDIR(st.st_mode)) { -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev