| 2648 | extern "C" int xml_enter(MY_XML_PARSER *st,const char *attr, size_t len); |
| 2649 | |
| 2650 | int xml_enter(MY_XML_PARSER *st,const char *attr, size_t len) |
| 2651 | { |
| 2652 | MY_XML_USER_DATA *data= (MY_XML_USER_DATA*)st->user_data; |
| 2653 | uint numnodes= data->pxml->length() / sizeof(MY_XML_NODE); |
| 2654 | MY_XML_NODE node; |
| 2655 | |
| 2656 | node.parent= data->parent; // Set parent for the new node to old parent |
| 2657 | data->parent= numnodes; // Remember current node as new parent |
| 2658 | DBUG_ASSERT(data->level <= MAX_LEVEL); |
| 2659 | data->pos[data->level]= numnodes; |
| 2660 | if (data->level < MAX_LEVEL) |
| 2661 | node.level= data->level++; |
| 2662 | else |
| 2663 | return MY_XML_ERROR; |
| 2664 | node.type= st->current_node_type; // TAG or ATTR |
| 2665 | node.beg= attr; |
| 2666 | node.end= attr + len; |
| 2667 | return append_node(data->pxml, &node) ? MY_XML_ERROR : MY_XML_OK; |
| 2668 | } |
| 2669 | |
| 2670 | |
| 2671 | /* |
no test coverage detected