refactored tagging support


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@307 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/der_encoder.c b/skeletons/der_encoder.c
index fbdccec..be71492 100644
--- a/skeletons/der_encoder.c
+++ b/skeletons/der_encoder.c
@@ -44,12 +44,12 @@
 	ssize_t *lens;
 	int i;
 
-	ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, iskip=%d, tag=%s, mtc=%d)",
-		sd->name, tag_mode, sd->tags_count, sd->tags_impl_skip,
+	ASN_DEBUG("Writing tags (%s, tm=%d, tc=%d, tag=%s, mtc=%d)",
+		sd->name, tag_mode, sd->tags_count,
 		ber_tlv_tag_string(tag),
 		tag_mode
 			?(sd->tags_count+1
-				-((tag_mode==-1)?sd->tags_impl_skip:0))
+				-((tag_mode == -1) && sd->tags_count))
 			:sd->tags_count
 	);
 
@@ -67,10 +67,10 @@
 		}
 		tags_count = sd->tags_count
 			+ 1	/* EXPLICIT or IMPLICIT tag is given */
-			- ((tag_mode==-1)?sd->tags_impl_skip:0);
+			- ((tag_mode == -1) && sd->tags_count);
 		/* Copy tags over */
 		tags[0] = tag;
-		stag_offset = -1 + ((tag_mode==-1)?sd->tags_impl_skip:0);
+		stag_offset = -1 + ((tag_mode == -1) && sd->tags_count);
 		for(i = 1; i < tags_count; i++)
 			tags[i] = sd->tags[i + stag_offset];
 	} else {