MCPcopy Create free account
hub / github.com/acl-dev/acl / xml_parse_text

Function xml_parse_text

lib_acl/src/xml/acl_xml2_parse.c:799–854  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

797}
798
799static const char *xml_parse_text(ACL_XML2 *xml, const char *data)
800{
801 int ch;
802
803 if (xml->curr_node->text == xml->dummy)
804 SKIP_SPACE(data);
805
806 if (*data == 0)
807 return data;
808
809 if (xml->curr_node->text == xml->dummy)
810 xml->curr_node->text = END(xml);
811
812 while ((ch = *data) != 0) {
813 if (ch == '<') {
814 if (NO_SPACE(xml))
815 return data;
816
817 data++;
818 xml->curr_node->text_size = (ssize_t)
819 (END(xml) - xml->curr_node->text);
820 ADD(xml, '\0');
821 xml->curr_node->status = ACL_XML2_S_RLT;
822 break;
823 }
824
825 if (NO_SPACE(xml))
826 return data;
827
828 data++;
829 ADD(xml, ch);
830 }
831
832 if (xml->curr_node->status == ACL_XML2_S_RLT
833 && (xml->flag & ACL_XML2_FLAG_XML_DECODE)
834 && xml->curr_node->text_size > 1
835 && !NO_SPACE(xml))
836 {
837 char *txt = xml->curr_node->text;
838
839 xml->curr_node->text = END(xml);
840 (void) acl_xml_decode(txt, xml->vbuf);
841 xml->curr_node->text_size = (ssize_t)
842 (END(xml) - xml->curr_node->text);
843 txt = END(xml) - 1;
844
845 while (txt >= xml->curr_node->text && IS_SPACE(*txt)) {
846 *txt-- = 0;
847 xml->curr_node->text_size--;
848 }
849
850 ADD(xml, '\0');
851 }
852
853 return data;
854}
855
856static const char *xml_parse_right_lt(ACL_XML2 *xml, const char *data)

Callers

nothing calls this directly

Calls 1

acl_xml_decodeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…