/usr/lib/gnats/diff-prs is in gnats-user 4.1.0-5.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #! /bin/sh
# Primitive program to diff PRs.
# Copyright (C) 200 Free Software Foundation, Inc.
# Contributed by Bob Manson (manson@juniper.net).
#
# This file is part of GNU GNATS.
#
# GNU GNATS is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU GNATS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU GNATS; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# Diff the PRs in files $1 and $2, returning a list of the changed
# fields. No output is produced if the PRs are identical.
mawk '
BEGIN {
state = 0;
}
(state == 0) {
fn = FILENAME;
}
((state == 0 || state == 2) && /^>.*:/) {
state++;
}
(fn != FILENAME) {
fn = FILENAME;
state++;
arrayindex="";
}
((state == 1 || state == 3) && /^>.*:/) {
line=$0;
fieldname=$1;
sub("^>", "", fieldname);
sub(":.*$", "", fieldname);
sub("^[^:]*:[ \t]*", "", line);
arrayindex=state">"fieldname;
array[arrayindex] = line;
fields[fieldname]++;
next;
}
((state == 1 || state == 3) && arrayindex != "") {
array[arrayindex] = array[arrayindex] "" $0;
next;
}
END {
for (x in fields) {
if (array["1>"x] != array["3>"x]) {
print x;
}
}
}
' $1 $2
|