#!/usr/bin/perl -w

my $INF = $ARGV[0];
my %reps = ();

open(FH, "<$INF.replace") or die "Cannot open $INF.replace";
while (<FH>) {
    chomp;
    my @inp = split(/ /);
    $reps{$inp[0]} = $inp[1];
}
close FH;

print STDERR "Read all\n";

my $lastnd = 0;
my $way = 0;

while (<>) {
    if (/^ *<node id='([^']*)'/) {
	if (!exists($reps{$1})) {
	    print $_;
	} else {
	    print STDERR "filtered: $_";
	}
    } elsif (/^ *<nd ref='([^']*)'/) {
	my $nd=$1;
	if ($nd == $lastnd) {
	    print STDERR "deleted: $nd from way: $way\n";
	    next;
	}
	$lastnd = $nd;
	if (exists($reps{$nd})) {
	    s/$nd/$reps{$nd}/;
	    print STDERR "replaced: $nd -> $reps{$nd}\n";
	}
	print $_;
    } elsif (/^ *<way.* id='([^']*)'/) {
	$way = $1;
	$lastnd = 0;
	print $_;
    } else {
	print $_;
    }
}
