| 886 | } |
| 887 | |
| 888 | static void |
| 889 | xmlSAX2AppendChild(xmlParserCtxtPtr ctxt, xmlNodePtr node) { |
| 890 | xmlNodePtr parent; |
| 891 | xmlNodePtr last; |
| 892 | |
| 893 | if (ctxt->inSubset == 1) { |
| 894 | parent = (xmlNodePtr) ctxt->myDoc->intSubset; |
| 895 | } else if (ctxt->inSubset == 2) { |
| 896 | parent = (xmlNodePtr) ctxt->myDoc->extSubset; |
| 897 | } else { |
| 898 | parent = ctxt->node; |
| 899 | if (parent == NULL) |
| 900 | parent = (xmlNodePtr) ctxt->myDoc; |
| 901 | } |
| 902 | |
| 903 | last = parent->last; |
| 904 | if (last == NULL) { |
| 905 | parent->children = node; |
| 906 | } else { |
| 907 | last->next = node; |
| 908 | node->prev = last; |
| 909 | } |
| 910 | |
| 911 | parent->last = node; |
| 912 | node->parent = parent; |
| 913 | |
| 914 | if ((node->type != XML_TEXT_NODE) && |
| 915 | (ctxt->linenumbers) && |
| 916 | (ctxt->input != NULL)) { |
| 917 | if ((unsigned) ctxt->input->line < (unsigned) USHRT_MAX) |
| 918 | node->line = ctxt->input->line; |
| 919 | else |
| 920 | node->line = USHRT_MAX; |
| 921 | } |
| 922 | } |
| 923 | |
| 924 | #if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_LEGACY_ENABLED) |
| 925 | /** |
no outgoing calls
no test coverage detected