summaryrefslogtreecommitdiff
path: root/gnulib-local/lib/libxml/pattern.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-local/lib/libxml/pattern.c')
-rw-r--r--gnulib-local/lib/libxml/pattern.c196
1 files changed, 103 insertions, 93 deletions
diff --git a/gnulib-local/lib/libxml/pattern.c b/gnulib-local/lib/libxml/pattern.c
index cf41606..33dee3a 100644
--- a/gnulib-local/lib/libxml/pattern.c
+++ b/gnulib-local/lib/libxml/pattern.c
@@ -3,7 +3,7 @@
*
* Reference:
* http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/
- * to some extent
+ * to some extent
* http://www.w3.org/TR/1999/REC-xml-19991116
*
* See Copyright for the status of this software.
@@ -39,6 +39,9 @@
/* #define DEBUG_STREAMING */
+#ifdef ERROR
+#undef ERROR
+#endif
#define ERROR(a, b, c, d)
#define ERROR5(a, b, c, d, e)
@@ -53,7 +56,7 @@
* NOTE: Those private flags (XML_STREAM_xxx) are used
* in _xmlStreamCtxt->flag. They extend the public
* xmlPatternFlags, so be carefull not to interfere with the
-* reserved values for xmlPatternFlags.
+* reserved values for xmlPatternFlags.
*/
#define XML_STREAM_FINAL_IS_ANY_NODE 1<<14
#define XML_STREAM_FROM_ROOT 1<<15
@@ -159,7 +162,7 @@ struct _xmlStepOp {
#define PAT_FROM_CUR (1<<9)
struct _xmlPattern {
- void *data; /* the associated template */
+ void *data; /* the associated template */
xmlDictPtr dict; /* the optional dictionary */
struct _xmlPattern *next; /* next pattern if | is used */
const xmlChar *pattern; /* the pattern */
@@ -178,15 +181,15 @@ struct _xmlPatParserContext {
int error; /* error code */
xmlDictPtr dict; /* the dictionary if any */
xmlPatternPtr comp; /* the result */
- xmlNodePtr elem; /* the current node if any */
+ xmlNodePtr elem; /* the current node if any */
const xmlChar **namespaces; /* the namespaces definitions */
int nb_namespaces; /* the number of namespaces */
};
/************************************************************************
- * *
- * Type functions *
- * *
+ * *
+ * Type functions *
+ * *
************************************************************************/
/**
@@ -305,7 +308,8 @@ xmlNewPatParserContext(const xmlChar *pattern, xmlDictPtr dict,
cur->base = pattern;
if (namespaces != NULL) {
int i;
- for (i = 0;namespaces[2 * i] != NULL;i++);
+ for (i = 0;namespaces[2 * i] != NULL;i++)
+ ;
cur->nb_namespaces = i;
} else {
cur->nb_namespaces = 0;
@@ -323,7 +327,7 @@ xmlNewPatParserContext(const xmlChar *pattern, xmlDictPtr dict,
static void
xmlFreePatParserContext(xmlPatParserContextPtr ctxt) {
if (ctxt == NULL)
- return;
+ return;
memset(ctxt, -1, sizeof(xmlPatParserContext));
xmlFree(ctxt);
}
@@ -451,9 +455,9 @@ xmlReversePattern(xmlPatternPtr comp) {
}
/************************************************************************
- * *
- * The interpreter for the precompiled patterns *
- * *
+ * *
+ * The interpreter for the precompiled patterns *
+ * *
************************************************************************/
static int
@@ -705,7 +709,7 @@ rollback:
* *
************************************************************************/
-#define TODO \
+#define TODO \
xmlGenericError(xmlGenericErrorContext, \
"Unimplemented block at %s:%d\n", \
__FILE__, __LINE__);
@@ -715,14 +719,14 @@ rollback:
#define PEEKPREV(val) ctxt->cur[-(val)]
#define CUR_PTR ctxt->cur
-#define SKIP_BLANKS \
+#define SKIP_BLANKS \
while (IS_BLANK_CH(CUR)) NEXT
#define CURRENT (*ctxt->cur)
#define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur)
-#define PUSH(op, val, val2) \
+#define PUSH(op, val, val2) \
if (xmlPatternAdd(ctxt, ctxt->comp, (op), (val), (val2))) goto error;
#define XSLT_ERROR(X) \
@@ -768,7 +772,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) {
if (ctxt->dict)
ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q);
else
- ret = xmlStrndup(q, cur - q);
+ ret = xmlStrndup(q, cur - q);
}
cur += len;
CUR_PTR = cur;
@@ -787,7 +791,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) {
if (ctxt->dict)
ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q);
else
- ret = xmlStrndup(q, cur - q);
+ ret = xmlStrndup(q, cur - q);
}
cur += len;
CUR_PTR = cur;
@@ -804,7 +808,7 @@ xmlPatScanLiteral(xmlPatParserContextPtr ctxt) {
* xmlPatScanName:
* @ctxt: the XPath Parser context
*
- * [4] NameChar ::= Letter | Digit | '.' | '-' | '_' |
+ * [4] NameChar ::= Letter | Digit | '.' | '-' | '_' |
* CombiningChar | Extender
*
* [5] Name ::= (Letter | '_' | ':') (NameChar)*
@@ -829,7 +833,7 @@ xmlPatScanName(xmlPatParserContextPtr ctxt) {
while ((IS_LETTER(val)) || (IS_DIGIT(val)) ||
(val == '.') || (val == '-') ||
- (val == '_') ||
+ (val == '_') ||
(IS_COMBINING(val)) ||
(IS_EXTENDER(val))) {
cur += len;
@@ -838,7 +842,7 @@ xmlPatScanName(xmlPatParserContextPtr ctxt) {
if (ctxt->dict)
ret = (xmlChar *) xmlDictLookup(ctxt->dict, q, cur - q);
else
- ret = xmlStrndup(q, cur - q);
+ ret = xmlStrndup(q, cur - q);
CUR_PTR = cur;
return(ret);
}
@@ -918,7 +922,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
xmlChar *token = NULL;
xmlChar *name = NULL;
xmlChar *URL = NULL;
-
+
SKIP_BLANKS;
name = xmlPatScanNCName(ctxt);
if (name == NULL) {
@@ -935,10 +939,10 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
if (CUR == ':') {
int i;
xmlChar *prefix = name;
-
+
NEXT;
- if (IS_BLANK_CH(CUR)) {
+ if (IS_BLANK_CH(CUR)) {
ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL);
XML_PAT_FREE_STRING(ctxt, prefix);
ctxt->error = 1;
@@ -953,11 +957,11 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
(prefix[2] == 'l') &&
(prefix[3] == 0))
{
- XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE);
+ XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE);
} else {
for (i = 0;i < ctxt->nb_namespaces;i++) {
if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
- XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i])
+ XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i])
break;
}
}
@@ -965,7 +969,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
ERROR5(NULL, NULL, NULL,
"xmlCompileAttributeTest : no namespace bound to prefix %s\n",
prefix);
- ctxt->error = 1;
+ ctxt->error = 1;
goto error;
}
}
@@ -979,7 +983,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
"xmlCompileAttributeTest : Name expected\n");
ctxt->error = 1;
goto error;
- }
+ }
} else {
PUSH(XML_OP_ATTR, token, URL);
}
@@ -989,7 +993,7 @@ xmlCompileAttributeTest(xmlPatParserContextPtr ctxt) {
return;
error:
if (URL != NULL)
- XML_PAT_FREE_STRING(ctxt, URL)
+ XML_PAT_FREE_STRING(ctxt, URL)
if (token != NULL)
XML_PAT_FREE_STRING(ctxt, token);
}
@@ -1002,7 +1006,7 @@ error:
* form suitable for fast matching.
*
* [3] Step ::= '.' | NameTest
- * [4] NameTest ::= QName | '*' | NCName ':' '*'
+ * [4] NameTest ::= QName | '*' | NCName ':' '*'
*/
static void
@@ -1033,7 +1037,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
}
NEXT;
xmlCompileAttributeTest(ctxt);
- if (ctxt->error != 0)
+ if (ctxt->error != 0)
goto error;
return;
}
@@ -1058,7 +1062,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
NEXT;
if (CUR != ':') {
xmlChar *prefix = name;
- int i;
+ int i;
if (hasBlanks || IS_BLANK_CH(CUR)) {
ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL);
@@ -1091,6 +1095,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
}
}
XML_PAT_FREE_STRING(ctxt, prefix);
+ name = NULL;
if (token == NULL) {
if (CUR == '*') {
NEXT;
@@ -1106,7 +1111,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
}
} else {
NEXT;
- if (xmlStrEqual(name, (const xmlChar *) "child")) {
+ if (xmlStrEqual(name, (const xmlChar *) "child")) {
XML_PAT_FREE_STRING(ctxt, name);
name = xmlPatScanName(ctxt);
if (name == NULL) {
@@ -1124,7 +1129,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
if (CUR == ':') {
xmlChar *prefix = name;
int i;
-
+
NEXT;
if (IS_BLANK_CH(CUR)) {
ERROR5(NULL, NULL, NULL, "Invalid QName.\n", NULL);
@@ -1140,11 +1145,11 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
(prefix[2] == 'l') &&
(prefix[3] == 0))
{
- XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE)
+ XML_PAT_COPY_NSNAME(ctxt, URL, XML_XML_NAMESPACE)
} else {
for (i = 0;i < ctxt->nb_namespaces;i++) {
if (xmlStrEqual(ctxt->namespaces[2 * i + 1], prefix)) {
- XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i])
+ XML_PAT_COPY_NSNAME(ctxt, URL, ctxt->namespaces[2 * i])
break;
}
}
@@ -1157,6 +1162,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
}
}
XML_PAT_FREE_STRING(ctxt, prefix);
+ name = NULL;
if (token == NULL) {
if (CUR == '*') {
NEXT;
@@ -1191,7 +1197,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
"The 'element' or 'attribute' axis is expected.\n", NULL);
ctxt->error = 1;
goto error;
- }
+ }
}
} else if (CUR == '*') {
if (name != NULL) {
@@ -1206,7 +1212,7 @@ xmlCompileStepPattern(xmlPatParserContextPtr ctxt) {
return;
error:
if (URL != NULL)
- XML_PAT_FREE_STRING(ctxt, URL)
+ XML_PAT_FREE_STRING(ctxt, URL)
if (token != NULL)
XML_PAT_FREE_STRING(ctxt, token)
if (name != NULL)
@@ -1220,7 +1226,7 @@ error:
* Compile the Path Pattern and generates a precompiled
* form suitable for fast matching.
*
- * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
+ * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
*/
static void
xmlCompilePathPattern(xmlPatParserContextPtr ctxt) {
@@ -1230,7 +1236,7 @@ xmlCompilePathPattern(xmlPatParserContextPtr ctxt) {
} else if ((CUR == '.') || (ctxt->comp->flags & XML_PATTERN_NOTPATTERN)) {
ctxt->comp->flags |= PAT_FROM_CUR;
}
-
+
if ((CUR == '/') && (NXT(1) == '/')) {
PUSH(XML_OP_ANCESTOR, NULL, NULL);
NEXT;
@@ -1293,7 +1299,7 @@ xmlCompilePathPattern(xmlPatParserContextPtr ctxt) {
ERROR5(NULL, NULL, NULL,
"Incomplete expression '%s'.\n", ctxt->base);
ctxt->error = 1;
- goto error;
+ goto error;
}
xmlCompileStepPattern(ctxt);
if (ctxt->error != 0)
@@ -1317,7 +1323,7 @@ error:
* Compile the Path Pattern and generates a precompiled
* form suitable for fast matching.
*
- * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
+ * [5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
*/
static void
xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) {
@@ -1372,7 +1378,7 @@ xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) {
*/
do {
xmlCompileStepPattern(ctxt);
- if (ctxt->error != 0)
+ if (ctxt->error != 0)
goto error;
SKIP_BLANKS;
if (CUR != '/')
@@ -1391,7 +1397,7 @@ xmlCompileIDCXPathPath(xmlPatParserContextPtr ctxt) {
}
if (CUR == 0)
goto error_unfinished;
-
+
} while (CUR != 0);
if (CUR != 0) {
@@ -1407,7 +1413,7 @@ error:
error_unfinished:
ctxt->error = 1;
ERROR5(NULL, NULL, NULL,
- "Unfinished expression '%s'.\n", ctxt->base);
+ "Unfinished expression '%s'.\n", ctxt->base);
return;
}
@@ -1562,7 +1568,7 @@ xmlStreamCompAddStep(xmlStreamCompPtr comp, const xmlChar *name,
/**
* xmlStreamCompile:
* @comp: the precompiled pattern
- *
+ *
* Tries to stream compile a pattern
*
* Returns -1 in case of failure and 0 in case of success.
@@ -1599,7 +1605,7 @@ xmlStreamCompile(xmlPatternPtr comp) {
xmlDictReference(stream->dict);
}
- i = 0;
+ i = 0;
if (comp->flags & PAT_FROM_ROOT)
stream->flags |= XML_STREAM_FROM_ROOT;
@@ -1615,12 +1621,12 @@ xmlStreamCompile(xmlPatternPtr comp) {
break;
case XML_OP_NS:
s = xmlStreamCompAddStep(stream, NULL, step.value,
- XML_ELEMENT_NODE, flags);
+ XML_ELEMENT_NODE, flags);
if (s < 0)
goto error;
prevs = s;
- flags = 0;
- break;
+ flags = 0;
+ break;
case XML_OP_ATTR:
flags |= XML_STREAM_STEP_ATTR;
prevs = -1;
@@ -1630,7 +1636,7 @@ xmlStreamCompile(xmlPatternPtr comp) {
if (s < 0)
goto error;
break;
- case XML_OP_ELEM:
+ case XML_OP_ELEM:
if ((step.value == NULL) && (step.value2 == NULL)) {
/*
* We have a "." or "self::node()" here.
@@ -1649,7 +1655,7 @@ xmlStreamCompile(xmlPatternPtr comp) {
if (comp->nbStep == i + 1) {
stream->flags |= XML_STREAM_FINAL_IS_ANY_NODE;
}
- flags |= XML_STREAM_STEP_NODE;
+ flags |= XML_STREAM_STEP_NODE;
s = xmlStreamCompAddStep(stream, NULL, NULL,
XML_STREAM_ANY_NODE, flags);
if (s < 0)
@@ -1665,39 +1671,39 @@ xmlStreamCompile(xmlPatternPtr comp) {
stream->steps[prevs].flags |= XML_STREAM_STEP_IN_SET;
prevs = -1;
}
- break;
+ break;
} else {
/* Just skip this one. */
continue;
}
}
- /* An element node. */
+ /* An element node. */
s = xmlStreamCompAddStep(stream, step.value, step.value2,
- XML_ELEMENT_NODE, flags);
+ XML_ELEMENT_NODE, flags);
if (s < 0)
goto error;
prevs = s;
- flags = 0;
- break;
+ flags = 0;
+ break;
case XML_OP_CHILD:
/* An element node child. */
s = xmlStreamCompAddStep(stream, step.value, step.value2,
- XML_ELEMENT_NODE, flags);
+ XML_ELEMENT_NODE, flags);
if (s < 0)
goto error;
prevs = s;
flags = 0;
- break;
+ break;
case XML_OP_ALL:
s = xmlStreamCompAddStep(stream, NULL, NULL,
- XML_ELEMENT_NODE, flags);
+ XML_ELEMENT_NODE, flags);
if (s < 0)
goto error;
prevs = s;
flags = 0;
break;
- case XML_OP_PARENT:
+ case XML_OP_PARENT:
break;
case XML_OP_ANCESTOR:
/* Skip redundant continuations. */
@@ -1711,7 +1717,7 @@ xmlStreamCompile(xmlPatternPtr comp) {
stream->flags |= XML_STREAM_DESC;
break;
}
- }
+ }
if ((! root) && (comp->flags & XML_PATTERN_NOTPATTERN) == 0) {
/*
* If this should behave like a real pattern, we will mark
@@ -1723,7 +1729,7 @@ xmlStreamCompile(xmlPatternPtr comp) {
if (stream->nbStep > 0) {
if ((stream->steps[0].flags & XML_STREAM_STEP_DESC) == 0)
- stream->steps[0].flags |= XML_STREAM_STEP_DESC;
+ stream->steps[0].flags |= XML_STREAM_STEP_DESC;
}
}
if (stream->nbStep <= s)
@@ -1916,7 +1922,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
if ((nodeType != XML_ATTRIBUTE_NODE) &&
(((stream->flags & XML_PATTERN_NOTPATTERN) == 0) ||
(stream->level == 0))) {
- ret = 1;
+ ret = 1;
}
stream->level++;
goto stream_next;
@@ -1925,7 +1931,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
/*
* Skip blocked expressions.
*/
- stream->level++;
+ stream->level++;
goto stream_next;
}
@@ -1968,7 +1974,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
* If there are "//", then we need to process every "//"
* occuring in the states, plus any other state for this
* level.
- */
+ */
stepNr = stream->states[2 * i];
/* TODO: should not happen anymore: dead states */
@@ -1986,7 +1992,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
if ((tmp < stream->level) && (!desc))
goto next_state;
}
- /*
+ /*
* Check for correct node-type.
*/
step = comp->steps[stepNr];
@@ -2000,7 +2006,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
goto next_state;
} else if (step.nodeType != XML_STREAM_ANY_NODE)
goto next_state;
- }
+ }
/*
* Compare local/namespace-name.
*/
@@ -2021,9 +2027,9 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
xmlStrEqual(step.name, name) &&
((step.ns == ns) || xmlStrEqual(step.ns, ns)))
{
- match = 1;
- }
-#if 0
+ match = 1;
+ }
+#if 0
/*
* TODO: Pointer comparison won't work, since not guaranteed that the given
* values are in the same dict; especially if it's the namespace name,
@@ -2038,8 +2044,8 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
} else {
match = ((step.name == name) && (step.ns == ns));
}
-#endif /* if 0 ------------------------------------------------------- */
- if (match) {
+#endif /* if 0 ------------------------------------------------------- */
+ if (match) {
final = step.flags & XML_STREAM_STEP_FINAL;
if (desc) {
if (final) {
@@ -2064,7 +2070,7 @@ xmlStreamPushInternal(xmlStreamCtxtPtr stream,
*/
ret = 1;
}
- }
+ }
if (((comp->flags & XML_STREAM_DESC) == 0) &&
((! match) || final)) {
/*
@@ -2095,7 +2101,7 @@ next_state:
* Re/enter the expression if it is a "descendant" one,
* or if we are at the 1st level of evaluation.
*/
-
+
if (stream->level == 1) {
if (XML_STREAM_XS_IDC(stream)) {
/*
@@ -2105,7 +2111,7 @@ next_state:
goto stream_next;
} else
goto compare;
- }
+ }
/*
* A "//" is always reentrant.
*/
@@ -2115,14 +2121,14 @@ next_state:
/*
* XS-IDC: Process the 2nd level, since the missing
* "self::node()" is responsible for the 2nd level being
- * the real start level.
- */
+ * the real start level.
+ */
if ((stream->level == 2) && XML_STREAM_XS_IDC(stream))
goto compare;
goto stream_next;
}
-
+
compare:
/*
* Check expected node-type.
@@ -2131,7 +2137,7 @@ compare:
if (nodeType == XML_ATTRIBUTE_NODE)
goto stream_next;
else if (step.nodeType != XML_STREAM_ANY_NODE)
- goto stream_next;
+ goto stream_next;
}
/*
* Compare local/namespace-name.
@@ -2153,10 +2159,10 @@ compare:
xmlStrEqual(step.name, name) &&
((step.ns == ns) || xmlStrEqual(step.ns, ns)))
{
- match = 1;
- }
+ match = 1;
+ }
final = step.flags & XML_STREAM_STEP_FINAL;
- if (match) {
+ if (match) {
if (final)
ret = 1;
else
@@ -2181,7 +2187,7 @@ compare:
stream_next:
stream = stream->next;
} /* while stream != NULL */
-
+
if (err > 0)
ret = -1;
#ifdef DEBUG_STREAMING
@@ -2273,7 +2279,7 @@ xmlStreamPushAttr(xmlStreamCtxtPtr stream,
int
xmlStreamPop(xmlStreamCtxtPtr stream) {
int i, lev;
-
+
if (stream == NULL)
return(-1);
while (stream != NULL) {
@@ -2283,12 +2289,16 @@ xmlStreamPop(xmlStreamCtxtPtr stream) {
if (stream->blockLevel == stream->level)
stream->blockLevel = -1;
- stream->level--;
- if (stream->level < 0)
- return(-1);
+ /*
+ * stream->level can be zero when XML_FINAL_IS_ANY_NODE is set
+ * (see the thread at
+ * http://mail.gnome.org/archives/xslt/2008-July/msg00027.html)
+ */
+ if (stream->level)
+ stream->level--;
/*
* Check evolution of existing states
- */
+ */
for (i = stream->nbState -1; i >= 0; i--) {
/* discard obsoleted states */
lev = stream->states[(2 * i) + 1];
@@ -2316,11 +2326,11 @@ xmlStreamPop(xmlStreamCtxtPtr stream) {
*/
int
xmlStreamWantsAnyNode(xmlStreamCtxtPtr streamCtxt)
-{
+{
if (streamCtxt == NULL)
return(-1);
while (streamCtxt != NULL) {
- if (streamCtxt->comp->flags & XML_STREAM_FINAL_IS_ANY_NODE)
+ if (streamCtxt->comp->flags & XML_STREAM_FINAL_IS_ANY_NODE)
return(1);
streamCtxt = streamCtxt->next;
}
@@ -2371,13 +2381,13 @@ xmlPatterncompile(const xmlChar *pattern, xmlDict *dict, int flags,
}
or++;
}
- if (ctxt == NULL) goto error;
+ if (ctxt == NULL) goto error;
cur = xmlNewPattern();
if (cur == NULL) goto error;
/*
* Assign string dict.
*/
- if (dict) {
+ if (dict) {
cur->dict = dict;
xmlDictReference(dict);
}
@@ -2560,7 +2570,7 @@ xmlPatternMaxDepth(xmlPatternPtr comp) {
* part of the set.
*
* Returns -1 in case of error otherwise the depth,
- *
+ *
*/
int
xmlPatternMinDepth(xmlPatternPtr comp) {