mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-01 21:45:23 +00:00
60 lines
1.0 KiB
Perl
60 lines
1.0 KiB
Perl
|
#! /usr/bin/env perl
|
||
|
# -*- mode: perl; -*-
|
||
|
|
||
|
# This script does a line by line comparison of two lyx files
|
||
|
|
||
|
use File::Slurp qw(read_file);
|
||
|
|
||
|
my $file1_name = shift;
|
||
|
my $file2_name = shift;
|
||
|
|
||
|
my @file1 = read_file($file1_name);
|
||
|
my @file2 = read_file($file2_name);
|
||
|
chomp @file1;
|
||
|
chomp @file2;
|
||
|
|
||
|
my $line_count = 0;
|
||
|
my $in_body = 0;
|
||
|
|
||
|
my @diffs;
|
||
|
|
||
|
foreach my $file1_line (@file1) {
|
||
|
$line_count++;
|
||
|
|
||
|
if ($file1_line eq '\begin_body') {
|
||
|
$in_body = 1;
|
||
|
next;
|
||
|
}
|
||
|
|
||
|
next if (! $in_body);
|
||
|
|
||
|
my $file2_line = $file2[$line_count-1];
|
||
|
|
||
|
# Ignore timestamps on changes
|
||
|
if ($file1_line =~ m|\\change_\w+|) {
|
||
|
$file1_line =~ s|(\d+) \d+||;
|
||
|
$file2_line =~ s|(\d+) \d+||;
|
||
|
}
|
||
|
|
||
|
if ($file1_line ne $file2_line) {
|
||
|
push @diffs, {
|
||
|
line => $line_count,
|
||
|
file1 => $file1_line,
|
||
|
file2 => $file2_line,
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
die "No body found in $file1_name\n" if (! $in_body);
|
||
|
|
||
|
my $diff_output = '';
|
||
|
foreach $diff (@diffs) {
|
||
|
$diff_output .= $diff->{line} . ' - ' . $diff->{file1} . ' | ' . $diff->{file2} . "\n";
|
||
|
}
|
||
|
|
||
|
if ($diff_output) {
|
||
|
die "Differences found!\n$diff_output\n";
|
||
|
}
|
||
|
|
||
|
exit(0);
|