- configure.in: releasing 2.2.4
- parser.[ch]: added xmlStrEqual()
- HTMLparser.c HTMLtree.c SAX.c debugXML.c entities.c parser.c
tree.c valid.c xlink.c xpath.c: converted all !xmlStrcmp to
use xmlStrEqual instead
- TODO: updated
- added an XPath test
Daniel
diff --git a/valid.c b/valid.c
index f2fc71d..4b2f620 100644
--- a/valid.c
+++ b/valid.c
@@ -567,8 +567,8 @@
cur = table->table[i];
if ((ns != NULL) && (cur->prefix == NULL)) continue;
if ((ns == NULL) && (cur->prefix != NULL)) continue;
- if ((!xmlStrcmp(cur->name, name)) &&
- ((ns == NULL) || (!xmlStrcmp(cur->prefix, ns)))) {
+ if ((xmlStrEqual(cur->name, name)) &&
+ ((ns == NULL) || (xmlStrEqual(cur->prefix, ns)))) {
/*
* The element is already defined in this Dtd.
*/
@@ -927,7 +927,7 @@
return(NULL);
for (i = 0;i < table->nb_attributes;i++) {
- if (!xmlStrcmp(table->table[i]->elem, elem)) {
+ if (xmlStrEqual(table->table[i]->elem, elem)) {
table->table[i]->nexth = ret;
ret = table->table[i];
}
@@ -1080,8 +1080,8 @@
cur = cur->nexth;
continue;
}
- if ((!xmlStrcmp(cur->name, name)) &&
- ((ns == NULL) || (!xmlStrcmp(cur->prefix, ns)))) {
+ if ((xmlStrEqual(cur->name, name)) &&
+ ((ns == NULL) || (xmlStrEqual(cur->prefix, ns)))) {
/*
* The attribute is already defined in this Dtd.
*/
@@ -1101,9 +1101,9 @@
cur = table->table[i];
if ((ns != NULL) && (cur->prefix == NULL)) continue;
if ((ns == NULL) && (cur->prefix != NULL)) continue;
- if ((!xmlStrcmp(cur->name, name)) &&
- (!xmlStrcmp(cur->elem, elem)) &&
- ((ns == NULL) || (!xmlStrcmp(cur->prefix, ns)))) {
+ if ((xmlStrEqual(cur->name, name)) &&
+ (xmlStrEqual(cur->elem, elem)) &&
+ ((ns == NULL) || (xmlStrEqual(cur->prefix, ns)))) {
/*
* The attribute is already defined in this Dtd.
*/
@@ -1461,7 +1461,7 @@
*/
for (i = 0;i < table->nb_notations;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->name, name)) {
+ if (xmlStrEqual(cur->name, name)) {
/*
* The notation is already defined in this Dtd.
*/
@@ -1730,7 +1730,7 @@
*/
for (i = 0;i < table->nb_ids;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->value, value)) {
+ if (xmlStrEqual(cur->value, value)) {
/*
* The id is already defined in this Dtd.
*/
@@ -1827,8 +1827,8 @@
((attr->name[1] == 'D') || (attr->name[1] == 'd')) &&
(attr->name[2] == 0)) return(1);
} else if (doc->type == XML_HTML_DOCUMENT_NODE) {
- if ((!xmlStrcmp(BAD_CAST "id", attr->name)) ||
- (!xmlStrcmp(BAD_CAST "name", attr->name)))
+ if ((xmlStrEqual(BAD_CAST "id", attr->name)) ||
+ (xmlStrEqual(BAD_CAST "name", attr->name)))
return(1);
return(0);
} else {
@@ -1916,7 +1916,7 @@
*/
for (i = 0;i < table->nb_ids;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->value, ID)) {
+ if (xmlStrEqual(cur->value, ID)) {
return(cur->attr);
}
}
@@ -2177,7 +2177,7 @@
*/
for (i = 0;i < table->nb_refs;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->value, Ref)) {
+ if (xmlStrEqual(cur->value, Ref)) {
return(cur->attr);
}
}
@@ -2213,12 +2213,12 @@
if ((table->last >= 0) && (table->last < table->nb_elements)) {
cur = table->table[table->last];
- if (!xmlStrcmp(cur->name, name))
+ if (xmlStrEqual(cur->name, name))
return(cur);
}
for (i = 0;i < table->nb_elements;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->name, name)) {
+ if (xmlStrEqual(cur->name, name)) {
table->last = i;
return(cur);
}
@@ -2232,10 +2232,10 @@
for (i = 0;i < table->nb_elements;i++) {
cur = table->table[i];
- if ((!xmlStrcmp(cur->name, uqname)) &&
+ if ((xmlStrEqual(cur->name, uqname)) &&
((prefix == cur->prefix) ||
((prefix != NULL) && (cur->prefix != NULL) &&
- (!xmlStrcmp(cur->prefix, prefix))))) {
+ (xmlStrEqual(cur->prefix, prefix))))) {
if (prefix != NULL) xmlFree(prefix);
if (uqname != NULL) xmlFree(uqname);
return(cur);
@@ -2270,10 +2270,10 @@
for (i = 0;i < table->nb_elements;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->name, name) &&
+ if (xmlStrEqual(cur->name, name) &&
((prefix == cur->prefix) ||
((prefix != NULL) && (cur->prefix != NULL) &&
- (!xmlStrcmp(cur->prefix, prefix)))))
+ (xmlStrEqual(cur->prefix, prefix)))))
return(cur);
}
return(NULL);
@@ -2310,10 +2310,10 @@
if (etable != NULL) {
for (i = 0;i < etable->nb_elements;i++) {
ecur = etable->table[i];
- if (!xmlStrcmp(ecur->name, elem)) {
+ if (xmlStrEqual(ecur->name, elem)) {
cur = ecur->attributes;
while (cur != NULL) {
- if (!xmlStrcmp(cur->name, name))
+ if (xmlStrEqual(cur->name, name))
return(cur);
cur = cur->nexth;
}
@@ -2331,8 +2331,8 @@
return(NULL);
for (i = 0;i < table->nb_attributes;i++) {
cur = table->table[i];
- if ((!xmlStrcmp(cur->name, name)) &&
- (!xmlStrcmp(cur->elem, elem)))
+ if ((xmlStrEqual(cur->name, name)) &&
+ (xmlStrEqual(cur->elem, elem)))
return(cur);
}
@@ -2344,11 +2344,11 @@
for (i = 0;i < table->nb_attributes;i++) {
cur = table->table[i];
- if ((!xmlStrcmp(cur->name, uqname)) &&
- (!xmlStrcmp(cur->elem, elem)) &&
+ if ((xmlStrEqual(cur->name, uqname)) &&
+ (xmlStrEqual(cur->elem, elem)) &&
((prefix == cur->prefix) ||
((prefix != NULL) && (cur->prefix != NULL) &&
- (!xmlStrcmp(cur->prefix, prefix))))) {
+ (xmlStrEqual(cur->prefix, prefix))))) {
if (prefix != NULL) xmlFree(prefix);
if (uqname != NULL) xmlFree(uqname);
return(cur);
@@ -2385,11 +2385,11 @@
for (i = 0;i < table->nb_attributes;i++) {
cur = table->table[i];
- if ((!xmlStrcmp(cur->name, name)) &&
- (!xmlStrcmp(cur->elem, elem)) &&
+ if ((xmlStrEqual(cur->name, name)) &&
+ (xmlStrEqual(cur->elem, elem)) &&
((prefix == cur->prefix) ||
((prefix != NULL) && (cur->prefix != NULL) &&
- (!xmlStrcmp(cur->prefix, prefix)))))
+ (xmlStrEqual(cur->prefix, prefix)))))
return(cur);
}
return(NULL);
@@ -2417,7 +2417,7 @@
for (i = 0;i < table->nb_notations;i++) {
cur = table->table[i];
- if (!xmlStrcmp(cur->name, name))
+ if (xmlStrEqual(cur->name, name))
return(cur);
}
return(NULL);
@@ -2988,7 +2988,7 @@
if (table != NULL) {
for (i = 0;i < table->nb_attributes;i++) {
if ((table->table[i]->atype == XML_ATTRIBUTE_ID) &&
- (!xmlStrcmp(table->table[i]->elem, attr->elem))) {
+ (xmlStrEqual(table->table[i]->elem, attr->elem))) {
nbId++;
}
}
@@ -3020,7 +3020,7 @@
if ((attr->defaultValue != NULL) && (attr->tree != NULL)) {
xmlEnumerationPtr tree = attr->tree;
while (tree != NULL) {
- if (!xmlStrcmp(tree->name, attr->defaultValue)) break;
+ if (xmlStrEqual(tree->name, attr->defaultValue)) break;
tree = tree->next;
}
if (tree == NULL) {
@@ -3074,7 +3074,7 @@
next = cur->c2;
while (next != NULL) {
if (next->type == XML_ELEMENT_CONTENT_ELEMENT) {
- if (!xmlStrcmp(next->name, name)) {
+ if (xmlStrEqual(next->name, name)) {
VERROR(ctxt->userData,
"Definition of %s has duplicate references of %s\n",
elem->name, name);
@@ -3084,7 +3084,7 @@
}
if (next->c1 == NULL) break;
if (next->c1->type != XML_ELEMENT_CONTENT_ELEMENT) break;
- if (!xmlStrcmp(next->c1->name, name)) {
+ if (xmlStrEqual(next->c1->name, name)) {
VERROR(ctxt->userData,
"Definition of %s has duplicate references of %s\n",
elem->name, name);
@@ -3213,7 +3213,7 @@
/* Validity constraint: Fixed Attribute Default */
if (attrDecl->def == XML_ATTRIBUTE_FIXED) {
- if (xmlStrcmp(value, attrDecl->defaultValue)) {
+ if (!xmlStrEqual(value, attrDecl->defaultValue)) {
VERROR(ctxt->userData,
"Value for attribute %s on %s is differnt from default \"%s\"\n",
attr->name, elem->name, attrDecl->defaultValue);
@@ -3250,7 +3250,7 @@
/* Second, verify that it's among the list */
while (tree != NULL) {
- if (!xmlStrcmp(tree->name, value)) break;
+ if (xmlStrEqual(tree->name, value)) break;
tree = tree->next;
}
if (tree == NULL) {
@@ -3265,7 +3265,7 @@
if (attrDecl->atype == XML_ATTRIBUTE_ENUMERATION) {
xmlEnumerationPtr tree = attrDecl->tree;
while (tree != NULL) {
- if (!xmlStrcmp(tree->name, value)) break;
+ if (xmlStrEqual(tree->name, value)) break;
tree = tree->next;
}
if (tree == NULL) {
@@ -3278,7 +3278,7 @@
/* Fixed Attribute Default */
if ((attrDecl->def == XML_ATTRIBUTE_FIXED) &&
- (xmlStrcmp(attrDecl->defaultValue, value))) {
+ (!xmlStrEqual(attrDecl->defaultValue, value))) {
VERROR(ctxt->userData,
"Value for attribute %s on %s must be \"%s\"\n",
attr->name, elem->name, attrDecl->defaultValue);
@@ -3352,7 +3352,7 @@
return(0);
case XML_ELEMENT_CONTENT_ELEMENT:
if (*child == NULL) return(0);
- ret = (!xmlStrcmp((*child)->name, cont->name));
+ ret = (xmlStrEqual((*child)->name, cont->name));
if (ret == 1) {
while ((*child)->next == NULL) {
if (((*child)->parent != NULL) &&
@@ -3738,11 +3738,11 @@
cont = elemDecl->content;
while (cont != NULL) {
if (cont->type == XML_ELEMENT_CONTENT_ELEMENT) {
- if (!xmlStrcmp(cont->name, qname)) break;
+ if (xmlStrEqual(cont->name, qname)) break;
} else if ((cont->type == XML_ELEMENT_CONTENT_OR) &&
(cont->c1 != NULL) &&
(cont->c1->type == XML_ELEMENT_CONTENT_ELEMENT)){
- if (!xmlStrcmp(cont->c1->name, qname)) break;
+ if (xmlStrEqual(cont->c1->name, qname)) break;
} else if ((cont->type != XML_ELEMENT_CONTENT_OR) ||
(cont->c1 == NULL) ||
(cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)){
@@ -3758,11 +3758,11 @@
cont = elemDecl->content;
while (cont != NULL) {
if (cont->type == XML_ELEMENT_CONTENT_ELEMENT) {
- if (!xmlStrcmp(cont->name, name)) break;
+ if (xmlStrEqual(cont->name, name)) break;
} else if ((cont->type == XML_ELEMENT_CONTENT_OR) &&
(cont->c1 != NULL) &&
(cont->c1->type == XML_ELEMENT_CONTENT_ELEMENT)) {
- if (!xmlStrcmp(cont->c1->name, name)) break;
+ if (xmlStrEqual(cont->c1->name, name)) break;
} else if ((cont->type != XML_ELEMENT_CONTENT_OR) ||
(cont->c1 == NULL) ||
(cont->c1->type != XML_ELEMENT_CONTENT_PCDATA)) {
@@ -3813,7 +3813,7 @@
attrib = elem->properties;
while (attrib != NULL) {
- if (!xmlStrcmp(attrib->name, attr->name)) {
+ if (xmlStrEqual(attrib->name, attr->name)) {
if (attr->prefix != NULL) {
xmlNsPtr nameSpace = attrib->ns;
@@ -3827,7 +3827,7 @@
if (nameSpace == NULL) {
if (qualified < 0)
qualified = 0;
- } else if (xmlStrcmp(nameSpace->prefix, attr->prefix)) {
+ } else if (!xmlStrEqual(nameSpace->prefix, attr->prefix)) {
if (qualified < 1)
qualified = 1;
} else
@@ -3903,7 +3903,7 @@
/*
* Check first the document root against the NQName
*/
- if (xmlStrcmp(doc->intSubset->name, root->name)) {
+ if (!xmlStrEqual(doc->intSubset->name, root->name)) {
if ((root->ns != NULL) && (root->ns->prefix != NULL)) {
xmlChar qname[500];
#ifdef HAVE_SNPRINTF
@@ -3913,11 +3913,11 @@
sprintf((char *) qname, "%s:%s", root->ns->prefix, root->name);
#endif
qname[sizeof(qname) - 1] = 0;
- if (!xmlStrcmp(doc->intSubset->name, qname))
+ if (xmlStrEqual(doc->intSubset->name, qname))
goto name_ok;
}
- if ((!xmlStrcmp(doc->intSubset->name, BAD_CAST "HTML")) &&
- (!xmlStrcmp(root->name, BAD_CAST "html")))
+ if ((xmlStrEqual(doc->intSubset->name, BAD_CAST "HTML")) &&
+ (xmlStrEqual(root->name, BAD_CAST "html")))
goto name_ok;
VERROR(ctxt->userData,
"Not valid: root and DtD name do not match '%s' and '%s'\n",
@@ -4255,12 +4255,12 @@
switch (ctree->type) {
case XML_ELEMENT_CONTENT_PCDATA:
for (i = 0; i < *len;i++)
- if (!xmlStrcmp(BAD_CAST "#PCDATA", list[i])) return(*len);
+ if (xmlStrEqual(BAD_CAST "#PCDATA", list[i])) return(*len);
list[(*len)++] = BAD_CAST "#PCDATA";
break;
case XML_ELEMENT_CONTENT_ELEMENT:
for (i = 0; i < *len;i++)
- if (!xmlStrcmp(ctree->name, list[i])) return(*len);
+ if (xmlStrEqual(ctree->name, list[i])) return(*len);
list[(*len)++] = ctree->name;
break;
case XML_ELEMENT_CONTENT_SEQ:
@@ -4375,7 +4375,7 @@
int j;
for (j = 0; j < nb_valid_elements;j++)
- if (!xmlStrcmp(elements[i], list[j])) break;
+ if (xmlStrEqual(elements[i], list[j])) break;
list[nb_valid_elements++] = elements[i];
if (nb_valid_elements >= max) break;
}