1#!/usr/bin/awk -f
2# $Id: report_duplicates.awk 181804 2010-01-22 17:03:24Z ucko $
3BEGIN { srcline=1; key="" }
4/^#line/ { srcline=$2; split($3, tmp, "\""); src=tmp[2]; next }
5/^[ 	]*[a-zA-Z0-9_]+[ 	]*=/ { key=$1 }
6/^[ 	]*#define/ { key=$2 }
7/^[ 	]*#[ 	]+define/ { key=$3 }
8length(key) > 0 {
9    if (seen[key]) {
10        print src ":" srcline ": duplicate definition of " key
11        print seen[key] ": original definition here"
12    } else {
13        seen[key] = src ":" srcline
14    }
15    key=""
16}
17{ ++srcline }
18