aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1print
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-09-05 05:17:57 +0000
committerLev Walkin <vlm@lionet.info>2005-09-05 05:17:57 +0000
commitef62540d72b133d2263fc0741a6c91ab88e58ab3 (patch)
treec768361ff7bea527cb77ed4e0e825c2c68c01f10 /libasn1print
parentae7bf3fbe8e530f20a2c629530e92c5235921454 (diff)
compiler directives support; TMF 040-1 compatible
Diffstat (limited to 'libasn1print')
-rw-r--r--libasn1print/asn1print.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index de7fcf90..86175f1d 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -508,6 +508,16 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
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 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
== 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)) {