Mercurial > flash_v2
diff host/libcdl/parse.cxx @ 163:0d2b193a635f
Merge from eCos master repository on 2001-06-22-17:38:39-BST
| author | jlarmour |
|---|---|
| date | Fri, 22 Jun 2001 18:18:44 +0000 |
| parents | 6ed91473a1cd |
| children | fbfd52cf7976 |
line wrap: on
line diff
--- a/host/libcdl/parse.cxx +++ b/host/libcdl/parse.cxx @@ -801,7 +801,8 @@ CdlParse::parse_string_property(CdlInter } throw; } - + + CYG_REPORT_RETURN(); return TCL_OK; } @@ -901,7 +902,7 @@ CdlParse::parse_stringvector_property(Cd int CdlParse::parse_reference_property(CdlInterpreter interp, int argc, char** argv, std::string name, char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference), - CdlUpdateHandler update_handler) + bool allow_empty, CdlUpdateHandler update_handler) { CYG_REPORT_FUNCNAME("parse_reference_property"); CYG_PRECONDITION_CLASSC(interp); @@ -917,7 +918,7 @@ CdlParse::parse_reference_property(CdlIn CdlParse::report_property_parse_error(interp, argv[0], "Too many arguments, expecting just one."); } else { std::string refname = argv[data_index]; - if (!Cdl::is_valid_cdl_name(refname)) { + if (!(Cdl::is_valid_cdl_name(refname) || (allow_empty && ("" == refname)))) { CdlParse::report_property_parse_error(interp, argv[0], "`" + refname + "' is not a valid CDL name"); } else { CdlNode current_node = interp->get_node();
