111 lines
4.3 KiB
Diff
111 lines
4.3 KiB
Diff
From 1b01b0e4c7b7e0aa8087835452a277778450e0a7 Mon Sep 17 00:00:00 2001
|
|
From: Mark Nudelman <markn@greenwoodsoftware.com>
|
|
Date: Sun, 9 Oct 2022 14:17:36 -0700
|
|
Subject: [PATCH 06/48] lesstest: log LESS_TERMCAP_?? vars so termcap keys etc
|
|
are correct when running test.
|
|
|
|
---
|
|
lesstest/env.c | 54 ++++++++++++++++++++++++++---------------------
|
|
lesstest/maketest | 24 +++++++++++++++++++++
|
|
2 files changed, 54 insertions(+), 24 deletions(-)
|
|
create mode 100755 lesstest/maketest
|
|
|
|
diff --git a/lesstest/env.c b/lesstest/env.c
|
|
index d1a570b..77bfda6 100644
|
|
--- a/lesstest/env.c
|
|
+++ b/lesstest/env.c
|
|
@@ -63,30 +63,36 @@ static int is_less_env(const char* name, int name_len) {
|
|
}
|
|
|
|
static void env_setup(EnvBuf* env, char* const* prog_env, int interactive) {
|
|
- env_addpair(env, "LESS_TERMCAP_am", "1");
|
|
- env_addpair(env, "LESS_TERMCAP_cd", "\33S");
|
|
- env_addpair(env, "LESS_TERMCAP_ce", "\33L");
|
|
- env_addpair(env, "LESS_TERMCAP_cl", "\33A");
|
|
- env_addpair(env, "LESS_TERMCAP_cr", "\33<");
|
|
- env_addpair(env, "LESS_TERMCAP_cm", "\33%p2%d;%p1%dj");
|
|
- env_addpair(env, "LESS_TERMCAP_ho", "\33h");
|
|
- env_addpair(env, "LESS_TERMCAP_ll", "\33l");
|
|
- env_addpair(env, "LESS_TERMCAP_mb", "\33b");
|
|
- env_addpair(env, "LESS_TERMCAP_md", "\33d");
|
|
- env_addpair(env, "LESS_TERMCAP_md", "\33e");
|
|
- env_addpair(env, "LESS_TERMCAP_se", "\33t");
|
|
- env_addpair(env, "LESS_TERMCAP_so", "\33s");
|
|
- env_addpair(env, "LESS_TERMCAP_sr", "\33r");
|
|
- env_addpair(env, "LESS_TERMCAP_ue", "\33v");
|
|
- env_addpair(env, "LESS_TERMCAP_uo", "\33u");
|
|
- env_addpair(env, "LESS_TERMCAP_vb", "\33g");
|
|
- env_addpair(env, "LESS_TERMCAP_kr", terminfo.key_right ? terminfo.key_right : "");
|
|
- env_addpair(env, "LESS_TERMCAP_kl", terminfo.key_left ? terminfo.key_left : "");
|
|
- env_addpair(env, "LESS_TERMCAP_ku", terminfo.key_up ? terminfo.key_up : "");
|
|
- env_addpair(env, "LESS_TERMCAP_kd", terminfo.key_down ? terminfo.key_down : "");
|
|
- env_addpair(env, "LESS_TERMCAP_kh", terminfo.key_home ? terminfo.key_home : "");
|
|
- env_addpair(env, "LESS_TERMCAP_@7", terminfo.key_end ? terminfo.key_end : "");
|
|
-
|
|
+ struct tcvar { char const* name; char const* value; } tcvars[] = {
|
|
+ { "LESS_TERMCAP_am", "1" },
|
|
+ { "LESS_TERMCAP_cd", "\33S" },
|
|
+ { "LESS_TERMCAP_ce", "\33L" },
|
|
+ { "LESS_TERMCAP_cl", "\33A" },
|
|
+ { "LESS_TERMCAP_cr", "\33<" },
|
|
+ { "LESS_TERMCAP_cm", "\33%p2%d;%p1%dj" },
|
|
+ { "LESS_TERMCAP_ho", "\33h" },
|
|
+ { "LESS_TERMCAP_ll", "\33l" },
|
|
+ { "LESS_TERMCAP_mb", "\33b" },
|
|
+ { "LESS_TERMCAP_md", "\33d" },
|
|
+ { "LESS_TERMCAP_md", "\33e" },
|
|
+ { "LESS_TERMCAP_se", "\33t" },
|
|
+ { "LESS_TERMCAP_so", "\33s" },
|
|
+ { "LESS_TERMCAP_sr", "\33r" },
|
|
+ { "LESS_TERMCAP_ue", "\33v" },
|
|
+ { "LESS_TERMCAP_uo", "\33u" },
|
|
+ { "LESS_TERMCAP_vb", "\33g" },
|
|
+ { "LESS_TERMCAP_kr", terminfo.key_right ? terminfo.key_right : "" },
|
|
+ { "LESS_TERMCAP_kl", terminfo.key_left ? terminfo.key_left : "" },
|
|
+ { "LESS_TERMCAP_ku", terminfo.key_up ? terminfo.key_up : "" },
|
|
+ { "LESS_TERMCAP_kd", terminfo.key_down ? terminfo.key_down : "" },
|
|
+ { "LESS_TERMCAP_kh", terminfo.key_home ? terminfo.key_home : "" },
|
|
+ { "LESS_TERMCAP_@7", terminfo.key_end ? terminfo.key_end : "" },
|
|
+ };
|
|
+ for (int i = 0; i < countof(tcvars); ++i) {
|
|
+ struct tcvar* tc = &tcvars[i];
|
|
+ env_addpair(env, tc->name, tc->value);
|
|
+ log_env(tc->name, strlen(tc->name), tc->value);
|
|
+ }
|
|
for (char* const* envp = prog_env; *envp != NULL; ++envp) {
|
|
const char* ename = *envp;
|
|
const char* eq = strchr(ename, '=');
|
|
diff --git a/lesstest/maketest b/lesstest/maketest
|
|
new file mode 100755
|
|
index 0000000..42ce5ac
|
|
--- /dev/null
|
|
+++ b/lesstest/maketest
|
|
@@ -0,0 +1,24 @@
|
|
+#!/usr/bin/perl
|
|
+use strict;
|
|
+
|
|
+# Create a test file.
|
|
+my $usage = "usage: maketest [-o lt-file] [-l less.exe] [-s lt_screen] [-t lesstest] [-w width] [-h height] textfile\n";
|
|
+
|
|
+use Getopt::Std;
|
|
+
|
|
+exit main();
|
|
+sub main {
|
|
+ my %opt;
|
|
+ die $usage if not getopts('h:l:o:s:t:w:', \%opt);
|
|
+ my $textfile = shift @ARGV;
|
|
+ die $usage if not defined $textfile;
|
|
+ my $lesstest = ($opt{t} or "./lesstest");
|
|
+ my $lt_screen = ($opt{s} or "./lt_screen");
|
|
+ my $less = ($opt{l} or "../obj/less");
|
|
+ my $ltfile = ($opt{o} or "lt/$textfile.lt");
|
|
+ my $lines = ($opt{h} or $ENV{LINES}-1);
|
|
+ my $columns = ($opt{w} or $ENV{COLUMNS}-1);
|
|
+
|
|
+ my $cmd = "LINES=$lines COLUMNS=$columns $lesstest -o '$ltfile' -- $less '$textfile'";
|
|
+ exit system $cmd;
|
|
+}
|
|
--
|
|
2.27.0
|
|
|