OLD | NEW |
1 /* | 1 /* |
2 * pattern.c: Implemetation of selectors for nodes | 2 * pattern.c: Implemetation of selectors for nodes |
3 * | 3 * |
4 * Reference: | 4 * Reference: |
5 * http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ | 5 * http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ |
6 * to some extent | 6 * to some extent |
7 * http://www.w3.org/TR/1999/REC-xml-19991116 | 7 * http://www.w3.org/TR/1999/REC-xml-19991116 |
8 * | 8 * |
9 * See Copyright for the status of this software. | 9 * See Copyright for the status of this software. |
10 * | 10 * |
(...skipping 2267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2278 | 2278 |
2279 if (stream == NULL) | 2279 if (stream == NULL) |
2280 return(-1); | 2280 return(-1); |
2281 while (stream != NULL) { | 2281 while (stream != NULL) { |
2282 /* | 2282 /* |
2283 * Reset block-level. | 2283 * Reset block-level. |
2284 */ | 2284 */ |
2285 if (stream->blockLevel == stream->level) | 2285 if (stream->blockLevel == stream->level) |
2286 stream->blockLevel = -1; | 2286 stream->blockLevel = -1; |
2287 | 2287 |
2288 » stream->level--; | 2288 » /* |
2289 » if (stream->level < 0) | 2289 » * stream->level can be zero when XML_FINAL_IS_ANY_NODE is set |
2290 » return(-1);»» | 2290 » * (see the thread at |
| 2291 » * http://mail.gnome.org/archives/xslt/2008-July/msg00027.html) |
| 2292 » */ |
| 2293 » if (stream->level) |
| 2294 » stream->level--; |
2291 /* | 2295 /* |
2292 * Check evolution of existing states | 2296 * Check evolution of existing states |
2293 */ | 2297 */ |
2294 for (i = stream->nbState -1; i >= 0; i--) { | 2298 for (i = stream->nbState -1; i >= 0; i--) { |
2295 /* discard obsoleted states */ | 2299 /* discard obsoleted states */ |
2296 lev = stream->states[(2 * i) + 1]; | 2300 lev = stream->states[(2 * i) + 1]; |
2297 if (lev > stream->level) | 2301 if (lev > stream->level) |
2298 stream->nbState--; | 2302 stream->nbState--; |
2299 if (lev <= stream->level) | 2303 if (lev <= stream->level) |
2300 break; | 2304 break; |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2600 return(1); | 2604 return(1); |
2601 comp = comp->next; | 2605 comp = comp->next; |
2602 } | 2606 } |
2603 return(0); | 2607 return(0); |
2604 | 2608 |
2605 } | 2609 } |
2606 | 2610 |
2607 #define bottom_pattern | 2611 #define bottom_pattern |
2608 #include "elfgcchack.h" | 2612 #include "elfgcchack.h" |
2609 #endif /* LIBXML_PATTERN_ENABLED */ | 2613 #endif /* LIBXML_PATTERN_ENABLED */ |
OLD | NEW |