commiting a some fixes and debug done yesterday in the London airport.

* xmlregexp.c: commiting a some fixes and debug done yesterday in
  the London airport.
Daniel
diff --git a/xmlregexp.c b/xmlregexp.c
index 9c76ef6..dea0977 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -1464,6 +1464,14 @@
 	     * Generate an epsilon transition to link to the target
 	     */
 	    xmlFAGenerateEpsilonTransition(ctxt, atom->stop, to);
+#ifdef DV
+	} else if ((to == NULL) && (atom->quant != XML_REGEXP_QUANT_RANGE) && 
+		   (atom->quant != XML_REGEXP_QUANT_ONCE)) {
+	    to = xmlRegNewState(ctxt);
+	    xmlRegStatePush(ctxt, to);
+	    ctxt->state = to;
+	    xmlFAGenerateEpsilonTransition(ctxt, atom->stop, to);
+#endif
 	}
 	switch (atom->quant) {
 	    case XML_REGEXP_QUANT_OPT:
@@ -2160,7 +2168,7 @@
 		                           to, atom);
 	    if (res == 0) {
 	        ret = 0;
-		t1->nd = 1;
+		/* t1->nd = 1; */
 	    }
 	    continue;
 	}
@@ -2214,7 +2222,7 @@
 	     * will have to be handled separately
 	     */
 	    if (t1->atom == NULL) {
-		t1->nd = 1;
+		/* t1->nd = 1; */
 		continue;
 	    }
 	    if (t1->to == -1) /* eliminated */
@@ -2278,10 +2286,11 @@
 		    /* don't shortcut the computation so all non deterministic
 		       transition get marked down
 		    if (ret == 0)
-			return(0); */
+			return(0);
+		     */
 		    if (ret == 0) {
 			t1->nd = 1;
-			t2->nd = 1;
+			/* t2->nd = 1; */
 			last = t1;
 		    }
 		}
@@ -2873,6 +2882,14 @@
 		if ((trans->nd == 1) ||
 		    ((trans->count >= 0) && (deter == 0) &&
 		     (exec->state->nbTrans > exec->transno + 1))) {
+#ifdef DEBUG_REGEXP_EXEC
+		    if (trans->nd == 1)
+		        printf("Saving on nd transition atom %d for %c at %d\n",
+			       trans->atom->no, codepoint, exec->index);
+		    else
+		        printf("Saving on counted transition count %d for %c at %d\n",
+			       trans->count, codepoint, exec->index);
+#endif
 		    xmlFARegExecSave(exec);
 		}
 		if (trans->counter >= 0) {
@@ -2909,6 +2926,10 @@
 	     * Failed to find a way out
 	     */
 	    exec->determinist = 0;
+#ifdef DEBUG_REGEXP_EXEC
+	    printf("rollback from state %d on %d:%c\n", exec->state->no,
+	           codepoint,codepoint);
+#endif
 	    xmlFARegExecRollBack(exec);
 	}
 progress: