Solving a bug

This commit is contained in:
AnonymusRaccoon
2019-12-11 13:50:03 +01:00
parent e24bce0d48
commit f97cf3c49b
7 changed files with 14 additions and 11 deletions

View File

@@ -28,7 +28,7 @@ INCLUDE = -I ./include
CFLAGS = $(INCLUDE) -Wall -Wextra -Wshadow
LDFLAGS = -lmy -L lib/my/
LDFLAGS = -lmy -L ../my
CC = gcc

View File

@@ -21,4 +21,6 @@ Attributes with semi quotes (') instead of quotes (")
Comments
The error handling is not fiable yet.
String containing multiples following spaces.
String containing \n, \r or \t (theses specials chars are removed)

View File

@@ -51,8 +51,6 @@ int xml_parsechild(node *n, char **nodestr, bool has_child)
*p = '\0';
depth++;
n->child = xml_parsenode(nodestr);
if (!n->child)
return (-1);
if (xml_checkclosing(n, nodestr) < 0)
return (-1);
depth--;

View File

@@ -56,8 +56,6 @@ node *xml_getnode(node *parent, const char *name)
if (!my_strcmp(parent->name, name))
return (parent);
for (node *n = parent->child; n; n = n->next) {
if (!my_strcmp(n->name, name))
return (n);
tmp = xml_getnode(n, name);
if (tmp != NULL)
return (tmp);

View File

@@ -13,7 +13,7 @@ int main(int argc, char **argv)
{
if (argc != 2)
return (printf("Usage: %s xml_path\n", argv[0]), 0);
node *n = xmlparse(argv[1]);
node *n = xml_parse(argv[1]);
xml_destroy(n);
return (0);
}

View File

@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<yes>
<nop />
</yes>
<Test>
</Test>
</yes>

View File

@@ -11,7 +11,7 @@
Test(xml, complete)
{
node *n = xmlparse("tests/testprolog.txt");
node *n = xml_parse("tests/testprolog.txt");
cr_assert_str_eq(n->name, "yes");
cr_assert_eq(n->next, NULL);
@@ -19,12 +19,15 @@ Test(xml, complete)
cr_assert_str_eq(n->child->name, "nop");
cr_assert_eq(n->child->child, NULL);
cr_assert_eq(n->child->properties, NULL);
cr_assert_eq(n->child->next, NULL);
cr_assert_str_eq(n->child->next->name, "Test");
cr_assert_eq(n->child->next->properties, NULL);
cr_assert_eq(n->child->next->child, NULL);
cr_assert_eq(n->child->next->next, NULL);
}
Test(xml, completewstring)
{
node *n = xmlparse("tests/teststring.txt");
node *n = xml_parse("tests/teststring.txt");
cr_assert_str_eq(n->name, "entity");
cr_assert_eq(n->next, NULL);