Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix Host::execute to use *this as a host location, not the this_actor->get_host()
[simgrid.git] / tools / cmake / scripts / fixup_simgrid_dtd_l.pl
index 5e2aa770a010005e8669e2fa033be978f20f858a..7a2d2515268e2a81a2e7434848930d8cf9642b88 100755 (executable)
@@ -6,13 +6,19 @@ while (<>) {
     next if (m#^ \* Generated [0-9/]* [0-9:]*#);
 
     # Informative error message for files using a very old DTD
-    s#"Bad declaration %s."#"Bad declaration %s.\\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl"#;
+    s#"Bad declaration %s."#"Bad declaration %s.\\nIf you are using an XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl"#;
 
     # Accept the alternative DTD location
     if (/DOCTYPE.*simgrid.org.simgrid.dtd/)  {
-       print ' "<!DOCTYPE"{S}"platform"{S}SYSTEM{S}("\'http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\'"|"\\"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\\""){s}">" SET(ROOT_surfxml_platform);'."\n"; 
+       print ' "<!DOCTYPE"{S}"platform"{S}SYSTEM{S}("\'http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\'"|"\\"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\\""){s}">" SET(ROOT_simgrid_parse_platform);'."\n";
     }
-    
+
+    # Completely rewrite the error handling mechanism to use exceptions instead of printing to stderr
+    if (/fprintf.stderr, .*? flexml_err_msg.;/) {
+       print('    simgrid_parse_error(flexml_err_msg);'."\n");
+       next;
+    }
+
     # Actually outputs the resulting line
     print;
 }