diff --git a/tutorial/Sgml.pmod b/tutorial/Sgml.pmod index 4cf97b4b2ad57b3a4d56a3816f2390ca419a26da..270cecfa1474118a4e5fc67eff2fdce2969c9cf3 100644 --- a/tutorial/Sgml.pmod +++ b/tutorial/Sgml.pmod @@ -22,6 +22,19 @@ class Tag if(f->open(file,"r")) { string *x=f->read(pos-1)/"\n"; + string f; + int i=0,l; + + foreach (reverse(x),string s) + if (sscanf(s,"<!-- %s line %d -->",f,l)) + return + sprintf("line %d col %d in file %s " + "/ generated from %s line %d (start line %d)", + sizeof(x)+1,strlen(x[-1])+1,file, + f,l+i,l); + else + if (i++ > 50) break; + return sprintf("line %d col %d in file %s",sizeof(x)+1,strlen(x[-1])+1,file); } }