Lines Matching defs:cur

348 			ctxt->cur - ctxt->base, 0,
361 ctxt->context->lastError.int1 = ctxt->cur - ctxt->base;
372 ctxt->cur - ctxt->base, 0,
622 xmlXPathCompExprPtr cur;
624 cur = (xmlXPathCompExprPtr) xmlMalloc(sizeof(xmlXPathCompExpr));
625 if (cur == NULL) {
629 memset(cur, 0, sizeof(xmlXPathCompExpr));
630 cur->maxStep = 10;
631 cur->nbStep = 0;
632 cur->steps = (xmlXPathStepOp *) xmlMalloc(cur->maxStep *
634 if (cur->steps == NULL) {
636 xmlFree(cur);
639 memset(cur->steps, 0, cur->maxStep * sizeof(xmlXPathStepOp));
640 cur->last = -1;
642 cur->nb = 0;
644 return(cur);
875 xmlXPathDebugDumpNode(FILE *output, xmlNodePtr cur, int depth) {
882 if (cur == NULL) {
889 if ((cur->type == XML_DOCUMENT_NODE) ||
890 (cur->type == XML_HTML_DOCUMENT_NODE)) {
893 } else if (cur->type == XML_ATTRIBUTE_NODE)
894 xmlDebugDumpAttr(output, (xmlAttrPtr)cur, depth);
896 xmlDebugDumpOneNode(output, cur, depth);
899 xmlXPathDebugDumpNodeList(FILE *output, xmlNodePtr cur, int depth) {
907 if (cur == NULL) {
914 while (cur != NULL) {
915 tmp = cur;
916 cur = cur->next;
922 xmlXPathDebugDumpNodeSet(FILE *output, xmlNodeSetPtr cur, int depth) {
930 if (cur == NULL) {
937 if (cur != NULL) {
938 fprintf(output, "Set contains %d nodes:\n", cur->nodeNr);
939 for (i = 0;i < cur->nodeNr;i++) {
942 xmlXPathDebugDumpNode(output, cur->nodeTab[i], depth + 1);
948 xmlXPathDebugDumpValueTree(FILE *output, xmlNodeSetPtr cur, int depth) {
956 if ((cur == NULL) || (cur->nodeNr == 0) || (cur->nodeTab[0] == NULL)) {
965 xmlXPathDebugDumpNodeList(output, cur->nodeTab[0]->children, depth + 1);
969 xmlXPathDebugDumpLocationSet(FILE *output, xmlLocationSetPtr cur, int depth) {
977 if (cur == NULL) {
984 for (i = 0;i < cur->locNr;i++) {
987 xmlXPathDebugDumpObject(output, cur->locTab[i], depth + 1);
995 * @cur: the object to inspect
1001 xmlXPathDebugDumpObject(FILE *output, xmlXPathObjectPtr cur, int depth) {
1014 if (cur == NULL) {
1018 switch(cur->type) {
1024 xmlXPathDebugDumpNodeSet(output, cur->nodesetval, depth);
1028 xmlXPathDebugDumpValueTree(output, cur->nodesetval, depth);
1032 if (cur->boolval) fprintf(output, "true\n");
1036 switch (xmlXPathIsInf(cur->floatval)) {
1044 if (xmlXPathIsNaN(cur->floatval)) {
1046 } else if (cur->floatval == 0 && xmlXPathGetSign(cur->floatval) != 0) {
1049 fprintf(output, "Object is a number : %0g\n", cur->floatval);
1055 xmlDebugDumpString(output, cur->stringval);
1059 fprintf(output, "Object is a point : index %d in node", cur->index);
1060 xmlXPathDebugDumpNode(output, (xmlNodePtr) cur->user, depth + 1);
1064 if ((cur->user2 == NULL) ||
1065 ((cur->user2 == cur->user) && (cur->index == cur->index2))) {
1068 if (cur->index >= 0)
1069 fprintf(output, "index %d in ", cur->index);
1071 xmlXPathDebugDumpNode(output, (xmlNodePtr) cur->user,
1077 if (cur->index >= 0)
1078 fprintf(output, "index %d in ", cur->index);
1080 xmlXPathDebugDumpNode(output, (xmlNodePtr) cur->user,
1084 if (cur->index2 >= 0)
1085 fprintf(output, "index %d in ", cur->index2);
1087 xmlXPathDebugDumpNode(output, (xmlNodePtr) cur->user2,
1096 (xmlLocationSetPtr) cur->user, depth);
2667 #define CUR (*ctxt->cur)
2668 #define SKIP(val) ctxt->cur += (val)
2669 #define NXT(val) ctxt->cur[(val)]
2670 #define CUR_PTR ctxt->cur
2677 #define NEXTL(l) ctxt->cur += l
2680 while (IS_BLANK_CH(*(ctxt->cur))) NEXT
2682 #define CURRENT (*ctxt->cur)
2683 #define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur)
2729 char *ptr, *cur;
2737 cur = &work[0];
2738 while ((*cur) && (ptr - buffer < buffersize)) {
2739 *ptr++ = *cur++;
2842 xmlNodePtr cur;
2846 cur = doc->children;
2847 while (cur != NULL) {
2848 if (cur->type == XML_ELEMENT_NODE) {
2849 cur->content = (void *) (-(++count));
2850 if (cur->children != NULL) {
2851 cur = cur->children;
2855 if (cur->next != NULL) {
2856 cur = cur->next;
2860 cur = cur->parent;
2861 if (cur == NULL)
2863 if (cur == (xmlNodePtr) doc) {
2864 cur = NULL;
2867 if (cur->next != NULL) {
2868 cur = cur->next;
2871 } while (cur != NULL);
2891 xmlNodePtr cur, root;
2914 cur = attrNode2->prev;
2915 while (cur != NULL) {
2916 if (cur == attrNode1)
2918 cur = cur->prev;
2957 for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
2958 if (cur == node1)
2962 root = cur;
2963 for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
2964 if (cur == node2)
2971 if (root != cur) {
3017 for (cur = node1->next;cur != NULL;cur = cur->next)
3018 if (cur == node2)
3040 xmlNodePtr cur, root;
3175 cur = miscNode2->prev;
3176 while (cur != NULL) {
3177 if (cur == miscNode1)
3179 if (cur->type == XML_ELEMENT_NODE)
3181 cur = cur->prev;
3206 cur = node1->parent;
3207 while (cur) {
3208 if (cur == node2)
3210 cur = cur->parent;
3214 cur = node2->parent;
3215 while (cur) {
3216 if (cur == node1)
3218 cur = cur->parent;
3249 for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
3250 if (cur == node1)
3254 root = cur;
3255 for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
3256 if (cur == node2)
3263 if (root != cur) {
3308 for (cur = node1->next;cur != NULL;cur = cur->next)
3309 if (cur == node2)
3368 xmlNsPtr cur;
3378 cur = (xmlNsPtr) xmlMalloc(sizeof(xmlNs));
3379 if (cur == NULL) {
3383 memset(cur, 0, sizeof(xmlNs));
3384 cur->type = XML_NAMESPACE_DECL;
3386 cur->href = xmlStrdup(ns->href);
3388 cur->prefix = xmlStrdup(ns->prefix);
3389 cur->next = (xmlNsPtr) node;
3390 return((xmlNodePtr) cur);
3488 * @cur: the node-set
3491 * checks whether @cur contains @val
3493 * Returns true (1) if @cur contains @val, false (0) otherwise
3496 xmlXPathNodeSetContains (xmlNodeSetPtr cur, xmlNodePtr val) {
3499 if ((cur == NULL) || (val == NULL)) return(0);
3501 for (i = 0; i < cur->nodeNr; i++) {
3502 if (cur->nodeTab[i]->type == XML_NAMESPACE_DECL) {
3506 ns2 = (xmlNsPtr) cur->nodeTab[i];
3515 for (i = 0; i < cur->nodeNr; i++) {
3516 if (cur->nodeTab[i] == val)
3525 * @cur: the initial node set
3532 xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns) {
3536 if ((cur == NULL) || (ns == NULL) || (node == NULL) ||
3545 for (i = 0;i < cur->nodeNr;i++) {
3546 if ((cur->nodeTab[i] != NULL) &&
3547 (cur->nodeTab[i]->type == XML_NAMESPACE_DECL) &&
3548 (((xmlNsPtr)cur->nodeTab[i])->next == (xmlNsPtr) node) &&
3549 (xmlStrEqual(ns->prefix, ((xmlNsPtr)cur->nodeTab[i])->prefix)))
3556 if (cur->nodeMax == 0) {
3557 cur->nodeTab = (xmlNodePtr *) xmlMalloc(XML_NODESET_DEFAULT *
3559 if (cur->nodeTab == NULL) {
3563 memset(cur->nodeTab, 0 ,
3565 cur->nodeMax = XML_NODESET_DEFAULT;
3566 } else if (cur->nodeNr == cur->nodeMax) {
3569 temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 *
3575 cur->nodeMax *= 2;
3576 cur->nodeTab = temp;
3578 cur->nodeTab[cur->nodeNr++] = xmlXPathNodeSetDupNs(node, ns);
3583 * @cur: the initial node set
3589 xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) {
3592 if ((cur == NULL) || (val == NULL)) return;
3603 for (i = 0;i < cur->nodeNr;i++)
3604 if (cur->nodeTab[i] == val) return;
3609 if (cur->nodeMax == 0) {
3610 cur->nodeTab = (xmlNodePtr *) xmlMalloc(XML_NODESET_DEFAULT *
3612 if (cur->nodeTab == NULL) {
3616 memset(cur->nodeTab, 0 ,
3618 cur->nodeMax = XML_NODESET_DEFAULT;
3619 } else if (cur->nodeNr == cur->nodeMax) {
3622 cur->nodeMax *= 2;
3623 temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax *
3629 cur->nodeTab = temp;
3634 cur->nodeTab[cur->nodeNr++] =
3637 cur->nodeTab[cur->nodeNr++] = val;
3642 * @cur: the initial node set
3649 xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val) {
3650 if ((cur == NULL) || (val == NULL)) return;
3661 if (cur->nodeMax == 0) {
3662 cur->nodeTab = (xmlNodePtr *) xmlMalloc(XML_NODESET_DEFAULT *
3664 if (cur->nodeTab == NULL) {
3668 memset(cur->nodeTab, 0 ,
3670 cur->nodeMax = XML_NODESET_DEFAULT;
3671 } else if (cur->nodeNr == cur->nodeMax) {
3674 temp = (xmlNodePtr *) xmlRealloc(cur->nodeTab, cur->nodeMax * 2 *
3680 cur->nodeTab = temp;
3681 cur->nodeMax *= 2;
3686 cur->nodeTab[cur->nodeNr++] =
3689 cur->nodeTab[cur->nodeNr++] = val;
4048 * @cur: the initial node set
4054 xmlXPathNodeSetDel(xmlNodeSetPtr cur, xmlNodePtr val) {
4057 if (cur == NULL) return;
4063 for (i = 0;i < cur->nodeNr;i++)
4064 if (cur->nodeTab[i] == val) break;
4066 if (i >= cur->nodeNr) { /* not found */
4074 if ((cur->nodeTab[i] != NULL) &&
4075 (cur->nodeTab[i]->type == XML_NAMESPACE_DECL))
4076 xmlXPathNodeSetFreeNs((xmlNsPtr) cur->nodeTab[i]);
4077 cur->nodeNr--;
4078 for (;i < cur->nodeNr;i++)
4079 cur->nodeTab[i] = cur->nodeTab[i + 1];
4080 cur->nodeTab[cur->nodeNr] = NULL;
4085 * @cur: the initial node set
4091 xmlXPathNodeSetRemove(xmlNodeSetPtr cur, int val) {
4092 if (cur == NULL) return;
4093 if (val >= cur->nodeNr) return;
4094 if ((cur->nodeTab[val] != NULL) &&
4095 (cur->nodeTab[val]->type == XML_NAMESPACE_DECL))
4096 xmlXPathNodeSetFreeNs((xmlNsPtr) cur->nodeTab[val]);
4097 cur->nodeNr--;
4098 for (;val < cur->nodeNr;val++)
4099 cur->nodeTab[val] = cur->nodeTab[val + 1];
4100 cur->nodeTab[cur->nodeNr] = NULL;
4392 xmlNodePtr cur;
4404 cur = xmlXPathNodeSetItem(nodes1, i);
4405 if (!xmlXPathNodeSetContains(nodes2, cur))
4406 xmlXPathNodeSetAddUnique(ret, cur);
4426 xmlNodePtr cur;
4436 cur = xmlXPathNodeSetItem(nodes1, i);
4437 if (xmlXPathNodeSetContains(nodes2, cur))
4438 xmlXPathNodeSetAddUnique(ret, cur);
4459 xmlNodePtr cur;
4468 cur = xmlXPathNodeSetItem(nodes, i);
4469 strval = xmlXPathCastNodeToString(cur);
4472 xmlXPathNodeSetAddUnique(ret, cur);
4516 xmlNodePtr cur;
4524 cur = xmlXPathNodeSetItem(nodes1, i);
4525 if (xmlXPathNodeSetContains(nodes2, cur))
4546 xmlNodePtr cur;
4559 cur = xmlXPathNodeSetItem(nodes, i);
4560 if (cur == node)
4562 xmlXPathNodeSetAddUnique(ret, cur);
4648 xmlNodePtr cur;
4661 cur = xmlXPathNodeSetItem(nodes, i);
4662 if (cur == node)
4664 xmlXPathNodeSetAddUnique(ret, cur);
5332 xmlNodePtr cur, tmp;
5342 cur = val->nodesetval->nodeTab[0]->children;
5343 while (cur != NULL) {
5344 tmp = xmlDocCopyNode(cur, top, 1);
5346 cur = cur->next;
6134 ret->cur = ret->base = str;
7521 (xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
7531 (xmlNodePtr cur, xmlNodePtr contextNode);
7544 * @cur: the current node in the traversal
7552 xmlXPathNextSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7554 if (cur == NULL)
7562 * @cur: the current node in the traversal
7570 xmlXPathNextChild(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7572 if (cur == NULL) {
7604 if ((cur->type == XML_DOCUMENT_NODE) ||
7605 (cur->type == XML_HTML_DOCUMENT_NODE))
7607 return(cur->next);
7613 * @cur: the current node in the traversal
7621 xmlXPathNextChildElement(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7623 if (cur == NULL) {
7624 cur = ctxt->context->node;
7625 if (cur == NULL) return(NULL);
7629 switch (cur->type) {
7634 cur = cur->children;
7635 if (cur != NULL) {
7636 if (cur->type == XML_ELEMENT_NODE)
7637 return(cur);
7639 cur = cur->next;
7640 } while ((cur != NULL) &&
7641 (cur->type != XML_ELEMENT_NODE));
7642 return(cur);
7650 return(xmlDocGetRootElement((xmlDocPtr) cur));
7659 switch (cur->type) {
7673 if (cur->next != NULL) {
7674 if (cur->next->type == XML_ELEMENT_NODE)
7675 return(cur->next);
7676 cur = cur->next;
7678 cur = cur->next;
7679 } while ((cur != NULL) && (cur->type != XML_ELEMENT_NODE));
7680 return(cur);
7688 * @cur: the current node in the traversal
7698 xmlXPathNextDescendantOrSelfElemParent(xmlNodePtr cur,
7701 if (cur == NULL) {
7719 xmlNodePtr start = cur;
7721 while (cur != NULL) {
7722 switch (cur->type) {
7727 if (cur != start)
7728 return(cur);
7729 if (cur->children != NULL) {
7730 cur = cur->children;
7740 if (cur != start)
7741 return(cur);
7742 return(xmlDocGetRootElement((xmlDocPtr) cur));
7748 if ((cur == NULL) || (cur == contextNode))
7750 if (cur->next != NULL) {
7751 cur = cur->next;
7753 cur = cur->parent;
7764 * @cur: the current node in the traversal
7773 xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7775 if (cur == NULL) {
7787 if (cur->children != NULL) {
7791 if (cur->children->type != XML_ENTITY_DECL) {
7792 cur = cur->children;
7796 if (cur->type != XML_DTD_NODE)
7797 return(cur);
7801 if (cur == ctxt->context->node) return(NULL);
7803 while (cur->next != NULL) {
7804 cur = cur->next;
7805 if ((cur->type != XML_ENTITY_DECL) &&
7806 (cur->type != XML_DTD_NODE))
7807 return(cur);
7811 cur = cur->parent;
7812 if (cur == NULL) break;
7813 if (cur == ctxt->context->node) return(NULL);
7814 if (cur->next != NULL) {
7815 cur = cur->next;
7816 return(cur);
7818 } while (cur != NULL);
7819 return(cur);
7825 * @cur: the current node in the traversal
7836 xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7838 if (cur == NULL) {
7847 return(xmlXPathNextDescendant(ctxt, cur));
7853 * @cur: the current node in the traversal
7861 xmlXPathNextParent(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7868 if (cur == NULL) {
7922 * @cur: the current node in the traversal
7934 xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
7941 if (cur == NULL) {
7991 if (cur == ctxt->context->doc->children)
7993 if (cur == (xmlNodePtr) ctxt->context->doc)
7995 switch (cur->type) {
8010 if (cur->parent == NULL)
8012 if ((cur->parent->type == XML_ELEMENT_NODE) &&
8013 ((cur->parent->name[0] == ' ') ||
8014 (xmlStrEqual(cur->parent->name,
8017 return(cur->parent);
8047 * @cur: the current node in the traversal
8058 xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8060 if (cur == NULL)
8062 return(xmlXPathNextAncestor(ctxt, cur));
8068 * @cur: the current node in the traversal
8077 xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8082 if (cur == (xmlNodePtr) ctxt->context->doc)
8084 if (cur == NULL)
8086 return(cur->next);
8092 * @cur: the current node in the traversal
8102 xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8107 if (cur == (xmlNodePtr) ctxt->context->doc)
8109 if (cur == NULL)
8111 if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE)) {
8112 cur = cur->prev;
8113 if (cur == NULL)
8116 return(cur->prev);
8122 * @cur: the current node in the traversal
8133 xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8135 if ((cur != NULL) && (cur->type != XML_ATTRIBUTE_NODE) &&
8136 (cur->type != XML_NAMESPACE_DECL) && (cur->children != NULL))
8137 return(cur->children);
8139 if (cur == NULL) {
8140 cur = ctxt->context->node;
8141 if (cur->type == XML_NAMESPACE_DECL)
8143 if (cur->type == XML_ATTRIBUTE_NODE)
8144 cur = cur->parent;
8146 if (cur == NULL) return(NULL) ; /* ERROR */
8147 if (cur->next != NULL) return(cur->next) ;
8149 cur = cur->parent;
8150 if (cur == NULL) break;
8151 if (cur == (xmlNodePtr) ctxt->context->doc) return(NULL);
8152 if (cur->next != NULL) return(cur->next);
8153 } while (cur != NULL);
8154 return(cur);
8185 * @cur: the current node in the traversal
8196 xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, xmlNodePtr cur)
8199 if (cur == NULL) {
8200 cur = ctxt->context->node;
8201 if (cur->type == XML_NAMESPACE_DECL)
8203 if (cur->type == XML_ATTRIBUTE_NODE)
8204 return(cur->parent);
8206 if (cur == NULL)
8208 if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
8209 cur = cur->prev;
8211 if (cur->prev != NULL) {
8212 for (cur = cur->prev; cur->last != NULL; cur = cur->last) ;
8213 return (cur);
8216 cur = cur->parent;
8217 if (cur == NULL)
8219 if (cur == ctxt->context->doc->children)
8221 } while (xmlXPathIsAncestor(cur, ctxt->context->node));
8222 return (cur);
8228 * @cur: the current node in the traversal
8242 xmlNodePtr cur)
8245 if (cur == NULL) {
8246 cur = ctxt->context->node;
8247 if (cur == NULL)
8249 if (cur->type == XML_NAMESPACE_DECL)
8251 ctxt->ancestor = cur->parent;
8253 if ((cur->prev != NULL) && (cur->prev->type == XML_DTD_NODE))
8254 cur = cur->prev;
8255 while (cur->prev == NULL) {
8256 cur = cur->parent;
8257 if (cur == NULL)
8259 if (cur == ctxt->context->doc->children)
8261 if (cur != ctxt->ancestor)
8262 return (cur);
8263 ctxt->ancestor = cur->parent;
8265 cur = cur->prev;
8266 while (cur->last != NULL)
8267 cur = cur->last;
8268 return (cur);
8274 * @cur: the current attribute in the traversal
8286 xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8289 if (ctxt->context->tmpNsList == NULL && cur != (xmlNodePtr) xmlXPathXMLNamespace) {
8315 * @cur: the current attribute in the traversal
8323 xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt, xmlNodePtr cur) {
8329 if (cur == NULL) {
8334 return((xmlNodePtr)cur->next);
8437 xmlXPathObjectPtr cur;
8444 cur = valuePop(ctxt);
8446 if ((cur == NULL) || (cur->nodesetval == NULL))
8448 else if ((cur->type == XPATH_NODESET) || (cur->type == XPATH_XSLT_TREE)) {
8450 (double) cur->nodesetval->nodeNr));
8452 if ((cur->nodesetval->nodeNr != 1) ||
8453 (cur->nodesetval->nodeTab == NULL)) {
8459 tmp = cur->nodesetval->nodeTab[0];
8470 xmlXPathReleaseObject(ctxt->context, cur);
8485 const xmlChar *cur = ids;
8494 while (IS_BLANK_CH(*cur)) cur++;
8495 while (*cur != 0) {
8496 while ((!IS_BLANK_CH(*cur)) && (*cur != 0))
8497 cur++;
8499 ID = xmlStrndup(ids, cur - ids);
8522 while (IS_BLANK_CH(*cur)) cur++;
8523 ids = cur;
8598 xmlXPathObjectPtr cur;
8613 cur = valuePop(ctxt);
8615 if ((cur->nodesetval == NULL) || (cur->nodesetval->nodeNr == 0)) {
8619 switch (cur->nodesetval->nodeTab[i]->type) {
8623 if (cur->nodesetval->nodeTab[i]->name[0] == ' ')
8628 cur->nodesetval->nodeTab[i]->name));
8632 ((xmlNsPtr)cur->nodesetval->nodeTab[i])->prefix));
8638 xmlXPathReleaseObject(ctxt->context, cur);
8657 xmlXPathObjectPtr cur;
8671 cur = valuePop(ctxt);
8673 if ((cur->nodesetval == NULL) || (cur->nodesetval->nodeNr == 0)) {
8677 switch (cur->nodesetval->nodeTab[i]->type) {
8680 if (cur->nodesetval->nodeTab[i]->ns == NULL)
8684 cur->nodesetval->nodeTab[i]->ns->href));
8690 xmlXPathReleaseObject(ctxt->context, cur);
8718 xmlXPathObjectPtr cur;
8731 cur = valuePop(ctxt);
8733 if ((cur->nodesetval == NULL) || (cur->nodesetval->nodeNr == 0)) {
8738 switch (cur->nodesetval->nodeTab[i]->type) {
8741 if (cur->nodesetval->nodeTab[i]->name[0] == ' ')
8744 else if ((cur->nodesetval->nodeTab[i]->ns == NULL) ||
8745 (cur->nodesetval->nodeTab[i]->ns->prefix == NULL)) {
8748 cur->nodesetval->nodeTab[i]->name));
8752 fullname = xmlBuildQName(cur->nodesetval->nodeTab[i]->name,
8753 cur->nodesetval->nodeTab[i]->ns->prefix,
8755 if (fullname == cur->nodesetval->nodeTab[i]->name)
8756 fullname = xmlStrdup(cur->nodesetval->nodeTab[i]->name);
8766 cur->nodesetval->nodeTab[i]));
8770 xmlXPathReleaseObject(ctxt->context, cur);
8812 xmlXPathObjectPtr cur;
8823 cur = valuePop(ctxt);
8824 if (cur == NULL) XP_ERROR(XPATH_INVALID_OPERAND);
8825 valuePush(ctxt, xmlXPathCacheConvertString(ctxt->context, cur));
8842 xmlXPathObjectPtr cur;
8862 cur = valuePop(ctxt);
8864 xmlUTF8Strlen(cur->stringval)));
8865 xmlXPathReleaseObject(ctxt->context, cur);
8879 xmlXPathObjectPtr cur, newobj;
8888 cur = valuePop(ctxt);
8889 if ((cur == NULL) || (cur->type != XPATH_STRING)) {
8890 xmlXPathReleaseObject(ctxt->context, cur);
8900 xmlXPathReleaseObject(ctxt->context, cur);
8903 tmp = xmlStrcat(newobj->stringval, cur->stringval);
8904 newobj->stringval = cur->stringval;
8905 cur->stringval = tmp;
8909 valuePush(ctxt, cur);
9357 xmlXPathObjectPtr cur;
9360 cur = valuePop(ctxt);
9361 if (cur == NULL) XP_ERROR(XPATH_INVALID_OPERAND);
9362 cur = xmlXPathCacheConvertBoolean(ctxt->context, cur);
9363 valuePush(ctxt, cur);
9472 xmlXPathObjectPtr cur;
9490 cur = valuePop(ctxt);
9491 valuePush(ctxt, xmlXPathCacheConvertNumber(ctxt->context, cur));
9506 xmlXPathObjectPtr cur;
9515 cur = valuePop(ctxt);
9517 if ((cur->nodesetval != NULL) && (cur->nodesetval->nodeNr != 0)) {
9518 for (i = 0; i < cur->nodesetval->nodeNr; i++) {
9519 res += xmlXPathCastNodeToNumber(cur->nodesetval->nodeTab[i]);
9523 xmlXPathReleaseObject(ctxt->context, cur);
9662 * @cur: pointer to the beginning of the char
9675 const xmlChar *cur;
9679 cur = ctxt->cur;
9692 c = *cur;
9694 if ((cur[1] & 0xc0) != 0x80)
9698 if ((cur[2] & 0xc0) != 0x80)
9702 ((cur[3] & 0xc0) != 0x80))
9706 val = (cur[0] & 0x7) << 18;
9707 val |= (cur[1] & 0x3f) << 12;
9708 val |= (cur[2] & 0x3f) << 6;
9709 val |= cur[3] & 0x3f;
9713 val = (cur[0] & 0xf) << 12;
9714 val |= (cur[1] & 0x3f) << 6;
9715 val |= cur[2] & 0x3f;
9720 val = (cur[0] & 0x1f) << 6;
9721 val |= cur[1] & 0x3f;
9730 return((int) *cur);
9764 if ((ctxt == NULL) || (ctxt->cur == NULL)) return(NULL);
9768 in = ctxt->cur;
9782 count = in - ctxt->cur;
9785 ret = xmlStrndup(ctxt->cur, count);
9786 ctxt->cur = in;
9845 if ((ctxt == NULL) || (ctxt->cur == NULL)) return(NULL);
9849 in = ctxt->cur;
9861 count = in - ctxt->cur;
9862 ret = xmlStrndup(ctxt->cur, count);
9863 ctxt->cur = in;
9970 const xmlChar *cur = str;
9980 if (cur == NULL) return(0);
9981 while (IS_BLANK_CH(*cur)) cur++;
9982 if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
9985 if (*cur == '-') {
9987 cur++;
9996 while ((*cur >= '0') && (*cur <= '9')) {
9998 tmp = (*cur - '0');
10000 cur++;
10006 while ((*cur >= '0') && (*cur <= '9')) {
10007 ret = ret * 10 + (*cur - '0');
10009 cur++;
10013 if (*cur == '.') {
10017 cur++;
10018 if (((*cur < '0') || (*cur > '9')) && (!ok)) {
10021 while (((*cur >= '0') && (*cur <= '9')) && (frac < MAX_FRAC)) {
10022 v = (*cur - '0');
10025 cur++;
10029 while ((*cur >= '0') && (*cur <= '9'))
10030 cur++;
10032 if ((*cur == 'e') || (*cur == 'E')) {
10033 cur++;
10034 if (*cur == '-') {
10036 cur++;
10037 } else if (*cur == '+') {
10038 cur++;
10040 while ((*cur >= '0') && (*cur <= '9')) {
10041 exponent = exponent * 10 + (*cur - '0');
10042 cur++;
10045 while (IS_BLANK_CH(*cur)) cur++;
10046 if (*cur != 0) return(xmlXPathNAN);
10448 const xmlChar *cur;
10451 cur = ctxt->cur;
10470 ret = xmlStrndup(cur, ctxt->cur - cur);
10471 ctxt->cur = cur;
11939 addNode(seq, cur); \
11942 addNode(seq, cur); \
11949 xmlXPathNodeSetAddNs(seq, xpctxt->node, (xmlNsPtr) cur); \
11954 xpctxt->node, (xmlNsPtr) cur); \
11983 xmlNodePtr cur;
12217 cur = NULL;
12220 cur = next(ctxt, cur);
12221 if (cur == NULL)
12228 if (*first == cur)
12232 (xmlXPathCmpNodesExt(*first, cur) >= 0))
12234 (xmlXPathCmpNodes(*first, cur) >= 0))
12241 if (*last == cur)
12245 (xmlXPathCmpNodesExt(cur, *last) >= 0))
12247 (xmlXPathCmpNodes(cur, *last) >= 0))
12257 xmlGenericError(xmlGenericErrorContext, " %s", cur->name);
12272 switch (cur->type) {
12290 } else if (cur->type == type) {
12296 (cur->type == XML_CDATA_SECTION_NODE))
12302 if ((cur->type == XML_PI_NODE) &&
12303 ((name == NULL) || xmlStrEqual(name, cur->name)))
12310 if (cur->type == XML_ATTRIBUTE_NODE)
12315 if (cur->type == XML_NAMESPACE_DECL)
12320 if (cur->type == XML_ELEMENT_NODE) {
12325 } else if ((cur->ns != NULL) &&
12326 (xmlStrEqual(URI, cur->ns->href)))
12339 if (cur->type != XML_ATTRIBUTE_NODE)
12342 if (cur->type != XML_NAMESPACE_DECL)
12345 if (cur->type != XML_ELEMENT_NODE)
12348 switch (cur->type) {
12350 if (xmlStrEqual(name, cur->name)) {
12352 if (cur->ns == NULL)
12357 if ((cur->ns != NULL) &&
12358 (xmlStrEqual(URI, cur->ns->href)))
12366 xmlAttrPtr attr = (xmlAttrPtr) cur;
12387 if (cur->type == XML_NAMESPACE_DECL) {
12388 xmlNsPtr ns = (xmlNsPtr) cur;
12402 } while (cur != NULL);
12596 int total = 0, cur;
12628 cur =
12643 if (total > cur)
12645 return (total + cur);
12720 int total = 0, cur;
12759 cur =
12778 if (total > cur)
12780 return (total + cur);
14115 xmlNodePtr cur = NULL, limit = NULL;
14167 cur = (xmlNodePtr)ctxt->doc;
14177 cur = ctxt->node;
14197 limit = cur;
14199 if (cur == NULL) {
14219 xmlXPathNodeSetAddUnique((*resultSeq)->nodesetval, cur);
14228 switch (cur->type) {
14234 if (cur->type == XML_ELEMENT_NODE) {
14235 ret = xmlStreamPush(patstream, cur->name,
14236 (cur->ns ? cur->ns->href : NULL));
14238 ret = xmlStreamPushNode(patstream, NULL, NULL, cur->type);
14247 xmlXPathNodeSetAddUnique((*resultSeq)->nodesetval, cur);
14249 if ((cur->children == NULL) || (depth >= max_depth)) {
14251 while (cur->next != NULL) {
14252 cur = cur->next;
14253 if ((cur->type != XML_ENTITY_DECL) &&
14254 (cur->type != XML_DTD_NODE))
14263 if ((cur->children != NULL) && (depth < max_depth)) {
14267 if (cur->children->type != XML_ENTITY_DECL) {
14268 cur = cur->children;
14273 if (cur->type != XML_DTD_NODE)
14278 if (cur == limit)
14281 while (cur->next != NULL) {
14282 cur = cur->next;
14283 if ((cur->type != XML_ENTITY_DECL) &&
14284 (cur->type != XML_DTD_NODE))
14289 cur = cur->parent;
14291 if ((cur == NULL) || (cur == limit))
14293 if (cur->type == XML_ELEMENT_NODE) {
14296 ((cur->type == XML_TEXT_NODE) ||
14297 (cur->type == XML_CDATA_SECTION_NODE) ||
14298 (cur->type == XML_COMMENT_NODE) ||
14299 (cur->type == XML_PI_NODE)))
14303 if (cur->next != NULL) {
14304 cur = cur->next;
14307 } while (cur != NULL);
14309 } while ((cur != NULL) && (depth >= 0));
14670 if (*pctxt->cur != 0) {
14867 if (ctxt->cur != NULL)
14868 while (*ctxt->cur != 0) ctxt->cur++;
14920 } else if ((*ctxt->cur != 0) && (ctxt->comp != NULL)
14978 if ((*pctxt->cur != 0) || (pctxt->error != XPATH_EXPRESSION_OK)) {