| 774 | }; |
| 775 | |
| 776 | char *acl_xml3_update(ACL_XML3 *xml, char *data) |
| 777 | { |
| 778 | if (data == NULL || *data == 0) |
| 779 | return data; |
| 780 | |
| 781 | if (!(xml->flag & ACL_XML3_FLAG_MULTI_ROOT) && xml->root_cnt > 0) |
| 782 | return data; |
| 783 | |
| 784 | /* XML ������״̬��ѭ���������� */ |
| 785 | |
| 786 | while (*data) { |
| 787 | if (xml->curr_node == NULL) { |
| 788 | if (!(xml->flag & ACL_XML3_FLAG_MULTI_ROOT) |
| 789 | && xml->root_cnt > 0) |
| 790 | { |
| 791 | break; |
| 792 | } |
| 793 | |
| 794 | SKIP_SPACE(data); |
| 795 | if (*data == 0) |
| 796 | break; |
| 797 | |
| 798 | xml->curr_node = acl_xml3_node_alloc(xml); |
| 799 | acl_xml3_node_add_child(xml->root, xml->curr_node); |
| 800 | xml->curr_node->depth = xml->root->depth + 1; |
| 801 | if (xml->curr_node->depth > xml->depth) |
| 802 | xml->depth = xml->curr_node->depth; |
| 803 | } |
| 804 | |
| 805 | data = status_tab[xml->curr_node->status].callback(xml, data); |
| 806 | } |
| 807 | |
| 808 | return data; |
| 809 | } |
no test coverage detected
searching dependent graphs…