OLD | NEW |
1 /* | 1 /* |
2 * dynamic.c: Implementation of the EXSLT -- Dynamic module | 2 * dynamic.c: Implementation of the EXSLT -- Dynamic module |
3 * | 3 * |
4 * References: | 4 * References: |
5 * http://www.exslt.org/dyn/dyn.html | 5 * http://www.exslt.org/dyn/dyn.html |
6 * | 6 * |
7 * See Copyright for the status of this software. | 7 * See Copyright for the status of this software. |
8 * | 8 * |
9 * Authors: | 9 * Authors: |
10 * Mark Vakoc <mark_vakoc@jdedwards.com> | 10 * Mark Vakoc <mark_vakoc@jdedwards.com> |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 boolval ? "true" : "")); | 209 boolval ? "true" : "")); |
210 if (cur != NULL) { | 210 if (cur != NULL) { |
211 cur->ns = | 211 cur->ns = |
212 xmlNewNs(cur, | 212 xmlNewNs(cur, |
213 BAD_CAST | 213 BAD_CAST |
214 "http://exslt.org/common", | 214 "http://exslt.org/common", |
215 BAD_CAST "exsl"); | 215 BAD_CAST "exsl"); |
216 xmlXPathNodeSetAddUnique(ret->nodesetval, | 216 xmlXPathNodeSetAddUnique(ret->nodesetval, |
217 cur); | 217 cur); |
218 } | 218 } |
219 xsltExtensionInstructionResultRegister(tctxt, ret); | |
220 } | 219 } |
221 break; | 220 break; |
222 case XPATH_NUMBER: | 221 case XPATH_NUMBER: |
223 if (container != NULL) { | 222 if (container != NULL) { |
224 xmlChar *val = | 223 xmlChar *val = |
225 xmlXPathCastNumberToString(subResult-> | 224 xmlXPathCastNumberToString(subResult-> |
226 floatval); | 225 floatval); |
227 xmlNodePtr cur = | 226 xmlNodePtr cur = |
228 xmlNewChild((xmlNodePtr) container, NULL, | 227 xmlNewChild((xmlNodePtr) container, NULL, |
229 BAD_CAST "number", val); | 228 BAD_CAST "number", val); |
230 if (val != NULL) | 229 if (val != NULL) |
231 xmlFree(val); | 230 xmlFree(val); |
232 | 231 |
233 if (cur != NULL) { | 232 if (cur != NULL) { |
234 cur->ns = | 233 cur->ns = |
235 xmlNewNs(cur, | 234 xmlNewNs(cur, |
236 BAD_CAST | 235 BAD_CAST |
237 "http://exslt.org/common", | 236 "http://exslt.org/common", |
238 BAD_CAST "exsl"); | 237 BAD_CAST "exsl"); |
239 xmlXPathNodeSetAddUnique(ret->nodesetval, | 238 xmlXPathNodeSetAddUnique(ret->nodesetval, |
240 cur); | 239 cur); |
241 } | 240 } |
242 xsltExtensionInstructionResultRegister(tctxt, ret); | |
243 } | 241 } |
244 break; | 242 break; |
245 case XPATH_STRING: | 243 case XPATH_STRING: |
246 if (container != NULL) { | 244 if (container != NULL) { |
247 xmlNodePtr cur = | 245 xmlNodePtr cur = |
248 xmlNewChild((xmlNodePtr) container, NULL, | 246 xmlNewChild((xmlNodePtr) container, NULL, |
249 BAD_CAST "string", | 247 BAD_CAST "string", |
250 subResult->stringval); | 248 subResult->stringval); |
251 if (cur != NULL) { | 249 if (cur != NULL) { |
252 cur->ns = | 250 cur->ns = |
253 xmlNewNs(cur, | 251 xmlNewNs(cur, |
254 BAD_CAST | 252 BAD_CAST |
255 "http://exslt.org/common", | 253 "http://exslt.org/common", |
256 BAD_CAST "exsl"); | 254 BAD_CAST "exsl"); |
257 xmlXPathNodeSetAddUnique(ret->nodesetval, | 255 xmlXPathNodeSetAddUnique(ret->nodesetval, |
258 cur); | 256 cur); |
259 } | 257 } |
260 xsltExtensionInstructionResultRegister(tctxt, ret); | |
261 } | 258 } |
262 break; | 259 break; |
263 default: | 260 default: |
264 break; | 261 break; |
265 } | 262 } |
266 xmlXPathFreeObject(subResult); | 263 xmlXPathFreeObject(subResult); |
267 } | 264 } |
268 } | 265 } |
269 } | 266 } |
270 ctxt->context->doc = oldDoc; | 267 ctxt->context->doc = oldDoc; |
(...skipping 24 matching lines...) Expand all Loading... |
295 void | 292 void |
296 exsltDynRegister (void) { | 293 exsltDynRegister (void) { |
297 xsltRegisterExtModuleFunction ((const xmlChar *) "evaluate", | 294 xsltRegisterExtModuleFunction ((const xmlChar *) "evaluate", |
298 EXSLT_DYNAMIC_NAMESPACE, | 295 EXSLT_DYNAMIC_NAMESPACE, |
299 exsltDynEvaluateFunction); | 296 exsltDynEvaluateFunction); |
300 xsltRegisterExtModuleFunction ((const xmlChar *) "map", | 297 xsltRegisterExtModuleFunction ((const xmlChar *) "map", |
301 EXSLT_DYNAMIC_NAMESPACE, | 298 EXSLT_DYNAMIC_NAMESPACE, |
302 exsltDynMapFunction); | 299 exsltDynMapFunction); |
303 | 300 |
304 } | 301 } |
OLD | NEW |