diff options
author | Daniel Veillard <veillard@redhat.com> | 2009-08-22 18:56:01 +0200 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2009-08-22 18:56:01 +0200 |
commit | d80d0728bfa1b3b7412aff01e520ecc0b8e3f14f (patch) | |
tree | 4b7becca02b0373d9b1a68a768544e3138f13525 /xmlregexp.c | |
parent | db4ac221f061e0e49e408e395980d954e272a14e (diff) | |
download | android_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.c | 9 |
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; |