From 7e98aae468d3a33a3d48f5e28e81ed4041b7f33b Mon Sep 17 00:00:00 2001 From: Mark Nudelman Date: Mon, 10 Oct 2022 12:31:07 -0700 Subject: [PATCH 10/48] lesstest: add -O option to lesstest. --- lesstest/lesstest.c | 8 ++++++-- lesstest/pipeline.c | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lesstest/lesstest.c b/lesstest/lesstest.c index 507cbb8..8c960ab 100644 --- a/lesstest/lesstest.c +++ b/lesstest/lesstest.c @@ -7,11 +7,12 @@ int verbose = 0; int less_quit = 0; int details = 0; char* lt_screen = "./lt_screen"; +char* lt_screen_opts = NULL; static char* testfile = NULL; static int usage(void) { - fprintf(stderr, "usage: lesstest -o file.lt [-w#] [-h#] [--] less.exe [flags] textfile\n"); + fprintf(stderr, "usage: lesstest -o file.lt [-w#] [-h#] [-dv] [-S lt_screen-opts] [--] less.exe [flags] textfile\n"); fprintf(stderr, " or: lesstest -t file.lt less.exe\n"); return 0; } @@ -19,7 +20,7 @@ static int usage(void) { static int setup(int argc, char* const* argv) { char* logfile = NULL; int ch; - while ((ch = getopt(argc, argv, "do:s:t:v")) != -1) { + while ((ch = getopt(argc, argv, "do:s:S:t:v")) != -1) { switch (ch) { case 'd': details = 1; @@ -30,6 +31,9 @@ static int setup(int argc, char* const* argv) { case 's': lt_screen = optarg; break; + case 'S': + lt_screen_opts = optarg; + break; case 't': testfile = optarg; break; diff --git a/lesstest/pipeline.c b/lesstest/pipeline.c index 4e60e49..e988e4d 100644 --- a/lesstest/pipeline.c +++ b/lesstest/pipeline.c @@ -9,6 +9,7 @@ extern int verbose; extern char* lt_screen; +extern char* lt_screen_opts; static const int run_less = 1; static void dup_and_close(int dup0, int dup1, int close0, int close1) { @@ -62,6 +63,9 @@ static void become_child_screen(char* lt_screen, int screen_width, int screen_he screen_argv[screen_argc++] = "-h"; screen_argv[screen_argc++] = sh; } + if (lt_screen_opts != NULL) { + screen_argv[screen_argc++] = lt_screen_opts; + } if (1) screen_argv[screen_argc++] = "-q"; if (verbose) -- 2.27.0