| 854 | } |
| 855 | |
| 856 | static const char *xml_parse_right_lt(ACL_XML2 *xml, const char *data) |
| 857 | { |
| 858 | ACL_XML2_NODE *node; |
| 859 | |
| 860 | SKIP_SPACE(data); |
| 861 | if (*data == 0) |
| 862 | return data; |
| 863 | |
| 864 | if (*data == '/') { /* get: "</" */ |
| 865 | data++; |
| 866 | xml->curr_node->status = ACL_XML2_S_RTAG; |
| 867 | |
| 868 | return data; |
| 869 | } else if ((xml->curr_node->flag & ACL_XML2_F_LEAF)) { |
| 870 | /* XXX: some error ? */ |
| 871 | if (NO_SPACE(xml)) |
| 872 | return data; |
| 873 | ADD(xml, '<'); |
| 874 | if (NO_SPACE(xml)) |
| 875 | return data; |
| 876 | ADD(xml, *data); |
| 877 | data++; |
| 878 | xml->curr_node->status = ACL_XML2_S_TXT; |
| 879 | |
| 880 | return data; |
| 881 | } |
| 882 | |
| 883 | /* ˵�������˵�ǰ�ڵ���ӽڵ� */ |
| 884 | |
| 885 | /* �������õ�ǰ�ڵ�״̬���Ա����䱻�ӽڵ㵯��ʱ�����ҵ� "</" */ |
| 886 | xml->curr_node->status = ACL_XML2_S_TXT; |
| 887 | |
| 888 | /* �����µ��ӽڵ㣬�������������ǰ�ڵ���ӽڵ㼯���� */ |
| 889 | |
| 890 | node = acl_xml2_node_alloc(xml); |
| 891 | acl_xml2_node_add_child(xml->curr_node, node); |
| 892 | node->depth = xml->curr_node->depth + 1; |
| 893 | if (node->depth > xml->depth) |
| 894 | xml->depth = node->depth; |
| 895 | xml->curr_node = node; |
| 896 | xml->curr_node->status = ACL_XML2_S_LLT; |
| 897 | |
| 898 | return data; |
| 899 | } |
| 900 | |
| 901 | /* ��Ϊ�ø��ڵ���ʵΪҶ�ڵ㣬������Ҫ���¸����ڸ�α���ڵ�� |
| 902 | * �ӽڵ�����ֵ����Ӧ���α���ڵ���ͬ |
nothing calls this directly
no test coverage detected
searching dependent graphs…