aboutsummaryrefslogtreecommitdiffstats
path: root/xmlregexp.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2009-08-22 18:56:01 +0200
committerDaniel Veillard <veillard@redhat.com>2009-08-22 18:56:01 +0200
commitd80d0728bfa1b3b7412aff01e520ecc0b8e3f14f (patch)
tree4b7becca02b0373d9b1a68a768544e3138f13525 /xmlregexp.c
parentdb4ac221f061e0e49e408e395980d954e272a14e (diff)
downloadandroid_external_libxml2-d80d0728bfa1b3b7412aff01e520ecc0b8e3f14f.tar.gz
android_external_libxml2-d80d0728bfa1b3b7412aff01e520ecc0b8e3f14f.tar.bz2
android_external_libxml2-d80d0728bfa1b3b7412aff01e520ecc0b8e3f14f.zip
559410 - Regexp bug on (...)? constructs
* xmlregexp.c: fix a regexp bug on some (...)? constructs * test/schemas/nvdcve* result/schemas/nvdcve*: add the tests to the regression suite
Diffstat (limited to 'xmlregexp.c')
-rw-r--r--xmlregexp.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/xmlregexp.c b/xmlregexp.c
index 5a48c7a8..0644d0bf 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -1569,8 +1569,13 @@ xmlFAGenerateTransitions(xmlRegParserCtxtPtr ctxt, xmlRegStatePtr from,
* 1. set transition from atom start to new state
* 2. set transition from atom end to this state.
*/
- xmlFAGenerateEpsilonTransition(ctxt, atom->start, 0);
- xmlFAGenerateEpsilonTransition(ctxt, atom->stop, ctxt->state);
+ if (to == NULL) {
+ xmlFAGenerateEpsilonTransition(ctxt, atom->start, 0);
+ xmlFAGenerateEpsilonTransition(ctxt, atom->stop,
+ ctxt->state);
+ } else {
+ xmlFAGenerateEpsilonTransition(ctxt, atom->start, to);
+ }
break;
case XML_REGEXP_QUANT_MULT:
atom->quant = XML_REGEXP_QUANT_ONCE;