compiler directives support; TMF 040-1 compatible

diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index de7fcf9..86175f1 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -508,6 +508,16 @@
 
 	if(flags & APF_LINE_COMMENTS && !(flags & APF_NOINDENT))
 		INDENT("-- #line %d\n", tc->_lineno);
+
+	/* Reconstruct compiler directive information */
+	if((tc->marker.flags & EM_INDIRECT)
+	&& (tc->marker.flags & EM_OMITABLE) != EM_OMITABLE) {
+		if((flags & APF_NOINDENT))
+			printf(" --<ASN1C.RepresentAsPointer>-- ");
+		else
+			INDENT("--<ASN1C.RepresentAsPointer>--\n");
+	}
+
 	if(tc->Identifier)
 		INDENT("%s", tc->Identifier);
 
@@ -623,15 +633,11 @@
 					== EM_OPTIONAL) {
 				printf(" OPTIONAL");
 			}
-			if(TQ_NEXT(se, next))
+			if(TQ_NEXT(se, next)) {
 				printf(",");
-			/* Reconstruct modifier information */
-			if((se->marker.flags & EM_OMITABLE)
-				!= EM_OMITABLE
-			&& se->marker.flags & EM_INDIRECT)
-				printf("\t/* <asn1c:pointer> */");
-			if(TQ_NEXT(se, next) && !(flags & APF_NOINDENT))
-				INDENT("\n");
+				if(!(flags & APF_NOINDENT))
+					INDENT("\n");
+			}
 		}
 
 		if(put_braces && TQ_FIRST(&tc->members)) {