Synchronize with trunk r58457.
[reactos.git] / include / reactos / libs / libxml / xpathInternals.h
index dcd5243..70c9db9 100644 (file)
@@ -100,16 +100,16 @@ extern "C" {
  */
 #define xmlXPathGetContextNode(ctxt)   ((ctxt)->context->node)
 
-XMLPUBFUN int XMLCALL          
+XMLPUBFUN int XMLCALL
                xmlXPathPopBoolean      (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN double XMLCALL               
-               xmlXPathPopNumber       (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL    
-               xmlXPathPopString       (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
-               xmlXPathPopNodeSet      (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void * XMLCALL               
-               xmlXPathPopExternal     (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN double XMLCALL
+               xmlXPathPopNumber       (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+               xmlXPathPopString       (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+               xmlXPathPopNodeSet      (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void * XMLCALL
+               xmlXPathPopExternal     (xmlXPathParserContextPtr ctxt);
 
 /**
  * xmlXPathReturnBoolean:
@@ -296,7 +296,9 @@ XMLPUBFUN void * XMLCALL
 #define CHECK_ARITY(x)                                                 \
     if (ctxt == NULL) return;                                          \
     if (nargs != (x))                                                  \
-        XP_ERROR(XPATH_INVALID_ARITY);
+        XP_ERROR(XPATH_INVALID_ARITY);                                 \
+    if (ctxt->valueNr < ctxt->valueFrame + (x))                                \
+        XP_ERROR(XPATH_STACK_ERROR);
 
 /**
  * CAST_TO_STRING:
@@ -329,7 +331,7 @@ XMLPUBFUN void * XMLCALL
  * Variable Lookup forwarding.
  */
 
-XMLPUBFUN void XMLCALL 
+XMLPUBFUN void XMLCALL
        xmlXPathRegisterVariableLookup  (xmlXPathContextPtr ctxt,
                                         xmlXPathVariableLookupFunc f,
                                         void *data);
@@ -338,7 +340,7 @@ XMLPUBFUN void XMLCALL
  * Function Lookup forwarding.
  */
 
-XMLPUBFUN void XMLCALL 
+XMLPUBFUN void XMLCALL
            xmlXPathRegisterFuncLookup  (xmlXPathContextPtr ctxt,
                                         xmlXPathFuncLookupFunc f,
                                         void *funcCtxt);
@@ -346,7 +348,7 @@ XMLPUBFUN void XMLCALL
 /*
  * Error reporting.
  */
-XMLPUBFUN void XMLCALL         
+XMLPUBFUN void XMLCALL
                xmlXPatherror   (xmlXPathParserContextPtr ctxt,
                                 const char *file,
                                 int line,
@@ -357,11 +359,11 @@ XMLPUBFUN void XMLCALL
                                 int error);
 
 #ifdef LIBXML_DEBUG_ENABLED
-XMLPUBFUN void XMLCALL         
+XMLPUBFUN void XMLCALL
                xmlXPathDebugDumpObject (FILE *output,
                                         xmlXPathObjectPtr cur,
                                         int depth);
-XMLPUBFUN void XMLCALL         
+XMLPUBFUN void XMLCALL
            xmlXPathDebugDumpCompExpr(FILE *output,
                                         xmlXPathCompExprPtr comp,
                                         int depth);
@@ -369,48 +371,48 @@ XMLPUBFUN void XMLCALL
 /**
  * NodeSet handling.
  */
-XMLPUBFUN int XMLCALL          
+XMLPUBFUN int XMLCALL
                xmlXPathNodeSetContains         (xmlNodeSetPtr cur,
                                                 xmlNodePtr val);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathDifference              (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathIntersection            (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
 
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathDistinctSorted          (xmlNodeSetPtr nodes);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathDistinct                (xmlNodeSetPtr nodes);
 
-XMLPUBFUN int XMLCALL          
+XMLPUBFUN int XMLCALL
                xmlXPathHasSameNodes            (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
 
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathNodeLeadingSorted       (xmlNodeSetPtr nodes,
                                                 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathLeadingSorted           (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathNodeLeading             (xmlNodeSetPtr nodes,
                                                 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathLeading                 (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
 
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathNodeTrailingSorted      (xmlNodeSetPtr nodes,
                                                 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathTrailingSorted          (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathNodeTrailing            (xmlNodeSetPtr nodes,
                                                 xmlNodePtr node);
-XMLPUBFUN xmlNodeSetPtr XMLCALL        
+XMLPUBFUN xmlNodeSetPtr XMLCALL
                xmlXPathTrailing                (xmlNodeSetPtr nodes1,
                                                 xmlNodeSetPtr nodes2);
 
@@ -419,51 +421,51 @@ XMLPUBFUN xmlNodeSetPtr XMLCALL
  * Extending a context.
  */
 
-XMLPUBFUN int XMLCALL             
+XMLPUBFUN int XMLCALL
                xmlXPathRegisterNs              (xmlXPathContextPtr ctxt,
                                                 const xmlChar *prefix,
                                                 const xmlChar *ns_uri);
-XMLPUBFUN const xmlChar * XMLCALL         
+XMLPUBFUN const xmlChar * XMLCALL
                xmlXPathNsLookup                (xmlXPathContextPtr ctxt,
                                                 const xmlChar *prefix);
-XMLPUBFUN void XMLCALL            
+XMLPUBFUN void XMLCALL
                xmlXPathRegisteredNsCleanup     (xmlXPathContextPtr ctxt);
 
-XMLPUBFUN int XMLCALL             
+XMLPUBFUN int XMLCALL
                xmlXPathRegisterFunc            (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 xmlXPathFunction f);
-XMLPUBFUN int XMLCALL             
+XMLPUBFUN int XMLCALL
                xmlXPathRegisterFuncNS          (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 const xmlChar *ns_uri,
                                                 xmlXPathFunction f);
-XMLPUBFUN int XMLCALL             
+XMLPUBFUN int XMLCALL
                xmlXPathRegisterVariable        (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 xmlXPathObjectPtr value);
-XMLPUBFUN int XMLCALL             
+XMLPUBFUN int XMLCALL
                xmlXPathRegisterVariableNS      (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 const xmlChar *ns_uri,
                                                 xmlXPathObjectPtr value);
-XMLPUBFUN xmlXPathFunction XMLCALL   
+XMLPUBFUN xmlXPathFunction XMLCALL
                xmlXPathFunctionLookup          (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name);
-XMLPUBFUN xmlXPathFunction XMLCALL   
+XMLPUBFUN xmlXPathFunction XMLCALL
                xmlXPathFunctionLookupNS        (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 const xmlChar *ns_uri);
-XMLPUBFUN void XMLCALL            
+XMLPUBFUN void XMLCALL
                xmlXPathRegisteredFuncsCleanup  (xmlXPathContextPtr ctxt);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathVariableLookup          (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL  
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathVariableLookupNS        (xmlXPathContextPtr ctxt,
                                                 const xmlChar *name,
                                                 const xmlChar *ns_uri);
-XMLPUBFUN void XMLCALL            
+XMLPUBFUN void XMLCALL
                xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
 
 /**
@@ -471,79 +473,79 @@ XMLPUBFUN void XMLCALL
  */
 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
                  xmlXPathNewParserContext      (const xmlChar *str,
-                                                xmlXPathContextPtr ctxt);
-XMLPUBFUN void XMLCALL           
+                                                xmlXPathContextPtr ctxt);
+XMLPUBFUN void XMLCALL
                xmlXPathFreeParserContext       (xmlXPathParserContextPtr ctxt);
 
 /* TODO: remap to xmlXPathValuePop and Push. */
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                valuePop                        (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN int XMLCALL            
+XMLPUBFUN int XMLCALL
                valuePush                       (xmlXPathParserContextPtr ctxt,
-                                                xmlXPathObjectPtr value);
+                                                xmlXPathObjectPtr value);
 
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewString               (const xmlChar *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewCString              (const char *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathWrapString              (xmlChar *val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathWrapCString             (char * val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewFloat                (double val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewBoolean              (int val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewNodeSet              (xmlNodePtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewValueTree            (xmlNodePtr val);
-XMLPUBFUN void XMLCALL           
+XMLPUBFUN int XMLCALL
                xmlXPathNodeSetAdd              (xmlNodeSetPtr cur,
                                                 xmlNodePtr val);
-XMLPUBFUN void XMLCALL              
+XMLPUBFUN int XMLCALL
                xmlXPathNodeSetAddUnique        (xmlNodeSetPtr cur,
                                                 xmlNodePtr val);
-XMLPUBFUN void XMLCALL           
-               xmlXPathNodeSetAddNs            (xmlNodeSetPtr cur, 
-                                                xmlNodePtr node, 
+XMLPUBFUN int XMLCALL
+               xmlXPathNodeSetAddNs            (xmlNodeSetPtr cur,
+                                                xmlNodePtr node,
                                                 xmlNsPtr ns);
-XMLPUBFUN void XMLCALL              
+XMLPUBFUN void XMLCALL
                xmlXPathNodeSetSort             (xmlNodeSetPtr set);
 
-XMLPUBFUN void XMLCALL           
+XMLPUBFUN void XMLCALL
                xmlXPathRoot                    (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN void XMLCALL           
+XMLPUBFUN void XMLCALL
                xmlXPathEvalExpr                (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL      
+XMLPUBFUN xmlChar * XMLCALL
                xmlXPathParseName               (xmlXPathParserContextPtr ctxt);
-XMLPUBFUN xmlChar * XMLCALL      
+XMLPUBFUN xmlChar * XMLCALL
                xmlXPathParseNCName             (xmlXPathParserContextPtr ctxt);
 
 /*
  * Existing functions.
  */
-XMLPUBFUN double XMLCALL 
+XMLPUBFUN double XMLCALL
                xmlXPathStringEvalNumber        (const xmlChar *str);
-XMLPUBFUN int XMLCALL 
-               xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, 
+XMLPUBFUN int XMLCALL
+               xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
                                                 xmlXPathObjectPtr res);
-XMLPUBFUN void XMLCALL 
+XMLPUBFUN void XMLCALL
                xmlXPathRegisterAllFunctions    (xmlXPathContextPtr ctxt);
-XMLPUBFUN xmlNodeSetPtr XMLCALL 
-               xmlXPathNodeSetMerge            (xmlNodeSetPtr val1, 
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+               xmlXPathNodeSetMerge            (xmlNodeSetPtr val1,
                                                 xmlNodeSetPtr val2);
-XMLPUBFUN void XMLCALL 
-               xmlXPathNodeSetDel              (xmlNodeSetPtr cur, 
+XMLPUBFUN void XMLCALL
+               xmlXPathNodeSetDel              (xmlNodeSetPtr cur,
                                                 xmlNodePtr val);
-XMLPUBFUN void XMLCALL 
-               xmlXPathNodeSetRemove           (xmlNodeSetPtr cur, 
+XMLPUBFUN void XMLCALL
+               xmlXPathNodeSetRemove           (xmlNodeSetPtr cur,
                                                 int val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathNewNodeSetList          (xmlNodeSetPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathWrapNodeSet             (xmlNodeSetPtr val);
-XMLPUBFUN xmlXPathObjectPtr XMLCALL 
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
                xmlXPathWrapExternal            (void *val);
 
 XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
@@ -621,7 +623,7 @@ XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, in
  * Really internal functions
  */
 XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
+
 #ifdef __cplusplus
 }
 #endif