more XER decoding
diff --git a/skeletons/constr_CHOICE.c b/skeletons/constr_CHOICE.c
index 0222abf..7799145 100644
--- a/skeletons/constr_CHOICE.c
+++ b/skeletons/constr_CHOICE.c
@@ -657,7 +657,6 @@
}
tcv = xer_check_tag(buf_ptr, ch_size, xml_tag);
- printf("XER/CHOICE tcv=%d ph=%d\n", tcv, ctx->phase);
switch(tcv) {
case XCT_BOTH:
break; /* No CHOICE? */
@@ -695,7 +694,7 @@
ctx->phase = 2;
break;
case XCT_UNEXPECTED:
- continue; /* or continue; */
+ continue;
case XCT_CLOSING:
default:
edx = td->elements_count;
@@ -703,8 +702,9 @@
}
break;
}
- if(edx == td->elements_count) break;
- continue;
+ if(edx != td->elements_count)
+ continue;
+ /* Fall through */
default:
break;
}