From 5d4e415291b14302f5e6079ba525cab928fc7045 Mon Sep 17 00:00:00 2001 From: AnonymusRaccoon Date: Fri, 6 Dec 2019 00:30:06 +0100 Subject: [PATCH] Bug found --- src/parsenode.c | 9 ++++++--- tests/xmltest.txt | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/parsenode.c b/src/parsenode.c index 7d6ddec..be9d9cb 100644 --- a/src/parsenode.c +++ b/src/parsenode.c @@ -20,6 +20,7 @@ char *xml_getname(char **nodestr, bool *has_parameters) *nodestr += 1; if (p) { *has_parameters = true; + *p = '\0'; } else { *has_parameters = false; p = my_strchr(*nodestr, '/'); @@ -27,10 +28,11 @@ char *xml_getname(char **nodestr, bool *has_parameters) p = my_strchr(*nodestr, '>'); else i++; - if (!p) - return (NULL); + if (p) + *p = '\0'; + else + p = *nodestr + my_strlen(*nodestr); } - *p = '\0'; name = my_strdup(*nodestr); *nodestr = p + i; return (name); @@ -136,6 +138,7 @@ node *xml_parsenode(char **nodestr) n->name = xml_getname(nodestr, &has_next_value); if (!n->name) return (NULL); + //IF THE NODE HAS NO PARAMTERS BUT A CHILD, THE SYSTEM TELLS THAT IT HAS NETHER. HERE CHILDS ARE USED ONLY WHEN THE NODE AS PARAMS if (has_next_value) { n->properties = xml_getproperties(nodestr, &has_next_value); if (!n->properties) diff --git a/tests/xmltest.txt b/tests/xmltest.txt index 487cd82..ef102e7 100644 --- a/tests/xmltest.txt +++ b/tests/xmltest.txt @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file