Minor enhancements to rundiff script.

util/rundiff:
    Make sure Algorithm::Diff is loaded only if you need it
    (so it's ok if you don't have it installed).
    Add command-line options for things you might want to change:
    - diff algorithm
    - # of context lines
    - # of lines of lookahead

--HG--
extra : convert_revision : b3ba02e1816eee286f47eb28ab578fa4734bac3a
This commit is contained in:
Steve Reinhardt 2003-11-09 20:36:54 -08:00
parent ebaecd1b6c
commit 7651e19cd1

View file

@ -41,21 +41,42 @@
use strict; use strict;
use Getopt::Std;
#
# Options:
# -c <n> : print n lines of context before & after changes
# -l <n> : use n lines of lookahead
# -x : use "complex" diff from Algorithm::Diff (see below)
#
our ($opt_c, $opt_l, $opt_x);
getopts('c:l:x');
# #
# For the highest-quality (minimal) diffs, we can use the # For the highest-quality (minimal) diffs, we can use the
# Algorithm::Diff package. If you don't have this installed, or want # Algorithm::Diff package. By default, a built-in, simple, and
# the script to run faster (like 3-4x faster, based on informal # generally quite adequate algorithm will be used. If you have
# observation), set $use_complexdiff to 0; then a built-in, simple, # Algorithm::Diff installed on your system, and don't mind having the
# and generally quite adequate algorithm will be used instead. # script go slower (like 3-4x slower, based on informal observation),
my $use_complexdiff = 0; # then specify '-x' on the command line to use it.
my $use_complexdiff = defined($opt_x);
#if ($use_complexdiff) { if ($use_complexdiff) {
# use Algorithm::Diff qw(traverse_sequences); # Don't use 'use', as that's a compile-time option and will fail
#}; # on systems that don't have Algorithm::Diff installed even if
# $use_complexdiff is false. 'require' is evaluated at runtime,
# so it's OK.
require Algorithm::Diff;
import Algorithm::Diff qw(traverse_sequences);
};
my $lookahead_lines = 200; my $lookahead_lines = $opt_l || 200;
my $precontext_lines = 3;
my $postcontext_lines = 3; # in theory you could have different amounts of context before and
# after a diff, but until someone needs that there's only one arg to
# set both.
my $precontext_lines = $opt_c || 3;
my $postcontext_lines = $precontext_lines;
my $file1 = $ARGV[0]; my $file1 = $ARGV[0];
my $file2 = $ARGV[1]; my $file2 = $ARGV[1];