| 2272 | */ |
| 2273 | |
| 2274 | static xmlXPathObjectPtr |
| 2275 | xmlXPathCacheConvertString(xmlXPathContextPtr ctxt, xmlXPathObjectPtr val) { |
| 2276 | xmlChar *res = NULL; |
| 2277 | |
| 2278 | if (val == NULL) |
| 2279 | return(xmlXPathCacheNewCString(ctxt, "")); |
| 2280 | |
| 2281 | switch (val->type) { |
| 2282 | case XPATH_UNDEFINED: |
| 2283 | #ifdef DEBUG_EXPR |
| 2284 | xmlGenericError(xmlGenericErrorContext, "STRING: undefined\n"); |
| 2285 | #endif |
| 2286 | break; |
| 2287 | case XPATH_NODESET: |
| 2288 | case XPATH_XSLT_TREE: |
| 2289 | res = xmlXPathCastNodeSetToString(val->nodesetval); |
| 2290 | break; |
| 2291 | case XPATH_STRING: |
| 2292 | return(val); |
| 2293 | case XPATH_BOOLEAN: |
| 2294 | res = xmlXPathCastBooleanToString(val->boolval); |
| 2295 | break; |
| 2296 | case XPATH_NUMBER: |
| 2297 | res = xmlXPathCastNumberToString(val->floatval); |
| 2298 | break; |
| 2299 | case XPATH_USERS: |
| 2300 | case XPATH_POINT: |
| 2301 | case XPATH_RANGE: |
| 2302 | case XPATH_LOCATIONSET: |
| 2303 | TODO; |
| 2304 | break; |
| 2305 | } |
| 2306 | xmlXPathReleaseObject(ctxt, val); |
| 2307 | if (res == NULL) |
| 2308 | return(xmlXPathCacheNewCString(ctxt, "")); |
| 2309 | return(xmlXPathCacheWrapString(ctxt, res)); |
| 2310 | } |
| 2311 | |
| 2312 | /** |
| 2313 | * xmlXPathCacheObjectCopy: |
no test coverage detected