#!/usr/bin/perl

use strict;

sub main {
    my($ligne);
    my($display);
    my($in_display)=0;
    my($start_ligne);
    while($ligne=<>) {
        if ($display > 0) {
	    $display--;
	}
	if ($ligne =~ /[Ii][Nn][Ff][Oo]/ ||
	    $ligne =~ /[Ww][Aa][Rr][Nn]/ ||
	    $ligne =~ /[Ee][Rr][Rr][Or][Rr]/
	    ) {
	    $display=0;
	}
	if ($ligne =~ /^(LaTeX|Package|Class)( (.*))? (Warning:|Error:)/) {
	    $start_ligne=$3;
	    if ($2) {
		$start_ligne="[(]".$start_ligne."[)]";
	    }
	    $display=1;
	    $in_display=1;
	} elsif ($ligne =~ /^$start_ligne   *[^ ]/) {
	    $display=1;
	} elsif ($ligne =~ /^ *$/) {
	    $in_display=0;
	} elsif ($ligne =~ /^Chap/) {
	    $display=1;
	} elsif ($ligne =~ /^(Underfull|Overfull) \\[hv]box/) {
	    $display=2;
	} else {
	    $in_display=0;
	}
	if ($display) {
	    print $ligne;
	}
    }
}

main();

