diff --git a/lib/src/clixon_xml_parse.l b/lib/src/clixon_xml_parse.l index e0c39884..770f6288 100644 --- a/lib/src/clixon_xml_parse.l +++ b/lib/src/clixon_xml_parse.l @@ -77,6 +77,7 @@ int clixon_xml_parsewrap(void) %x START %s STATEA %s AMPERSAND +%s CDATA %s CMNT %s STR %s TEXTDECL @@ -106,7 +107,9 @@ int clixon_xml_parsewrap(void) \< { BEGIN(START); return *clixon_xml_parsetext; } & { _YA->ya_lex_state =STATEA;BEGIN(AMPERSAND);} \n { clixon_xml_parselval.string = yytext;_YA->ya_linenum++; return (CHARDATA);} +"ya_lex_state = STATEA; clixon_xml_parselval.string = yytext; return CHARDATA;} . { clixon_xml_parselval.string = yytext; return CHARDATA; /*XXX:optimize*/} + /* @see xml_chardata_encode */ "amp; " {BEGIN(_YA->ya_lex_state); clixon_xml_parselval.string = "&"; return CHARDATA;} "lt; " {BEGIN(_YA->ya_lex_state); clixon_xml_parselval.string = "<"; return CHARDATA;} @@ -114,6 +117,8 @@ int clixon_xml_parsewrap(void) "apos; " {BEGIN(_YA->ya_lex_state); clixon_xml_parselval.string = "'"; return CHARDATA;} "aquot; " {BEGIN(_YA->ya_lex_state); clixon_xml_parselval.string = "'"; return CHARDATA;} +. { clixon_xml_parselval.string = yytext; return CHARDATA;} +"]]>" { BEGIN(_YA->ya_lex_state); clixon_xml_parselval.string = yytext; return CHARDATA;} "-->" { BEGIN(START); return ECOMMENT; } \n _YA->ya_linenum++;