Some correction and moving around.
[com-informatimago:com-informatimago.git] / post-clisp.awk
1 BEGIN{
2     "pwd"|getline pwd
3     # "/usr/local/bin/clisp -q -norc -ansi -x \"(princ(namestring (truename \\\"$(pwd)/\\\")))\""|getline pwd
4 }
5
6 /Compiling file /{
7     file=$4;
8     if(substr(file,0,length(pwd))==pwd){
9         file=substr(file,1+length(pwd));
10     }
11     next;
12 }
13
14 /; *Loading file /{
15     file=$4;
16     if(substr(file,0,length(pwd))==pwd){
17         file=substr(file,1+length(pwd));
18     }
19     next;
20 }
21
22 /WARNING in.*in lines/{
23     start=index($0,"WARNING in ")+length("WARNING in ");
24     fn=substr($0,start,index($0," in lines ")-start);
25     start=index($0," in lines ")+length(" in lines ");
26     lines=substr($0,start,index(substr($0,start)," ")-1);
27     split(lines,n,"\\.");
28     w="WARNING";
29     next;
30 }
31
32 /ERROR.*in lines/{
33     start=index($0,"ERROR in ")+length("WARNING in ");
34     fn=substr($0,start,index($0," in lines ")-start);
35     start=index($0," in lines ")+length(" in lines ");
36     lines=substr($0,start,index(substr($0,start)," ")-1);
37     split(lines,n,"\\.");
38     w="ERROR";
39     next;
40 }
41
42 {
43     if(w!=""){
44         printf "%s:%s:1:\n%s:%s:2:%s in %s: %s\n",file,n[1],file,n[3],w,fn,$0;
45         w="";
46     }else{
47         print $0;
48     }
49 }