5 # Wrapper for lesstest, using most common options.
6 my $usage = "usage: maketest [-o lt-file] [-l less.exe] [-s lt_screen] [-t lesstest] [-w width] [-h height] [-O lesstest-opts] [-S lt_screen-opts] textfile\n";
13 die $usage if not getopts('h:l:o:O:s:S:t:w:v', \%opt);
14 my $textfile = shift @ARGV;
15 die $usage if not defined $textfile;
16 my $lesstest = ($opt{t} or "./lesstest");
17 my $lt_screen = ($opt{s} or "./lt_screen");
18 my $less = ($opt{l} or "../obj/less");
19 my $lines = ($opt{h} or $ENV{LINES}-1);
20 my $columns = ($opt{w} or $ENV{COLUMNS}-1);
21 my $verbose = ($opt{v} or 0);
22 my $lt_opts = opts($opt{O} or "");
23 my $ls_opts = opts($opt{S} or "");
26 if (not less_is_test($less)) {
27 print "$less is not compiled to support LESSTEST\n";
28 my ($dir) = $less =~ m|^(.*)/[^/]*$|;
29 print "To fix: cd $dir; make clean; make LESSTEST=1\n";
32 if ($textfile =~ m|/|) {
33 my ($basename) = $textfile =~ m|^.*/([^/]+)$|;
34 if (not link $textfile, $basename) {
35 print "cannot link $textfile to $basename: $!\n";
39 $textfile = $basename;
41 if (not defined $ltfile) {
42 for (my $i = 0;; ++$i) {
43 my $suffix = $i ? $i : "";
44 $ltfile = "lt/$textfile$suffix.lt";
45 last if not -e $ltfile;
48 $ls_opts = "-S$ls_opts" if $ls_opts;
49 my $cmd = "LINES=$lines COLUMNS=$columns $lesstest $lt_opts $ls_opts -s '$lt_screen' -o '$ltfile' -- $less '$textfile'";
50 print "$cmd\n" if $verbose;
51 my $err = system($cmd);
55 print "created $ltfile\n";
57 unlink $textfile if $linked;
63 $opts = "-$opts" if $opts =~ /^[^-]/;
70 return $ver =~ /LESSTEST/;