diff --git a/sw/tools/gen_settings.ml b/sw/tools/gen_settings.ml index 1e7e0f28f0e..df1012965be 100644 --- a/sw/tools/gen_settings.ml +++ b/sw/tools/gen_settings.ml @@ -81,9 +81,14 @@ let print_dl_settings = fun settings -> let v = ExtXml.attrib s "var" in begin try - let h = ExtXml.attrib s "handler" and - m = ExtXml.attrib s "module" in - lprintf "case %d: %s_%s( _value ); _value = %s; break;\\\n" !idx (Filename.basename m) h v + let h = ExtXml.attrib s "handler" in + begin + try + let m = ExtXml.attrib s "module" in + lprintf "case %d: %s_%s( _value ); _value = %s; break;\\\n" !idx (Filename.basename m) h v + with + ExtXml.Error e -> prerr_endline (sprintf "Error: You need to specify the module attribute for setting %s to use the handler %s" v h); exit 1 + end; with ExtXml.Error e -> lprintf "case %d: %s = _value; break;\\\n" !idx v end;