more XER decoding


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@633 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/xer_decoder.c b/skeletons/xer_decoder.c
index db27a49..79a6bcc 100644
--- a/skeletons/xer_decoder.c
+++ b/skeletons/xer_decoder.c
@@ -55,9 +55,10 @@
 		pxer_chunk_type_e *ch_type) {
 	struct xer__cb_arg arg;
 	ssize_t ret;
+	int new_stateContext = *stateContext;
 
 	arg.callback_not_invoked = 1;
-	ret = pxml_parse(stateContext, buffer, size, xer__token_cb, &arg);
+	ret = pxml_parse(&new_stateContext, buffer, size, xer__token_cb, &arg);
 	if(ret < 0) return -1;
 	if(arg.callback_not_invoked) {
 		assert(ret == 0);	/* No data was consumed */
@@ -84,6 +85,7 @@
 		break;
 	}
 
+	*stateContext = new_stateContext;	/* Update the context */
 	return arg.chunk_size;
 }
 
@@ -98,6 +100,8 @@
 	xer_check_tag_e ct = XCT_OPENING;
 
 	if(size < 2 || buf[0] != LANGLE || buf[size-1] != RANGLE) {
+		if(size >= 2)
+		ASN_DEBUG("Broken XML tag: \"%c...%c\"", buf[0], buf[size - 1]);
 		return XCT_BROKEN;
 	}