diff options
author | Lev Walkin <vlm@lionet.info> | 2006-09-17 04:52:50 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2006-09-17 04:52:50 +0000 |
commit | a9532f4d2bad200422ffacae45342c73f7cb40cb (patch) | |
tree | 07a38fc49e3ffb8293361d4e3347c89e9b94766b /libasn1print | |
parent | cc7c94efce47bc02ce5bd60a93f25d32b1b23b50 (diff) |
moved -DASN_PDU_COLLECTION into compiler
Diffstat (limited to 'libasn1print')
-rw-r--r-- | libasn1print/asn1print.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c index 47cfb1f8..3462d1af 100644 --- a/libasn1print/asn1print.c +++ b/libasn1print/asn1print.c @@ -190,6 +190,11 @@ asn1print_value(asn1p_value_t *val, enum asn1print_flags flags) { case ATV_REAL: printf("%f", val->value.v_double); return 0; + case ATV_TYPE: + asn1print_expr(val->value.v_type->module->asn1p, + val->value.v_type->module, + val->value.v_type, flags, 0); + return 0; case ATV_INTEGER: printf("%" PRIdASN, val->value.v_integer); return 0; @@ -349,10 +354,19 @@ asn1print_constraint(asn1p_constraint_t *ct, enum asn1print_flags flags) { } break; case ACT_CT_CTDBY: - printf("CONSTRAINED BY "); + printf("(CONSTRAINED BY "); assert(ct->value->type == ATV_UNPARSED); fwrite(ct->value->value.string.buf, 1, ct->value->value.string.size, stdout); + printf(")"); + break; + case ACT_CT_CTNG: + printf("(CONTAINING "); + asn1print_expr(ct->value->value.v_type->module->asn1p, + ct->value->value.v_type->module, + ct->value->value.v_type, + flags, 1); + printf(")"); break; case ACT_CA_SET: symno++; case ACT_CA_CRC: symno++; @@ -364,6 +378,7 @@ asn1print_constraint(asn1p_constraint_t *ct, enum asn1print_flags flags) { char *symtable[] = { " EXCEPT ", " ^ ", " | ", ",", "", "(" }; unsigned int i; + if(ct->type == ACT_CA_CRC) fputs("(", stdout); for(i = 0; i < ct->el_count; i++) { if(i) fputs(symtable[symno], stdout); if(ct->type == ACT_CA_CRC) fputs("{", stdout); @@ -373,6 +388,7 @@ asn1print_constraint(asn1p_constraint_t *ct, enum asn1print_flags flags) { && ct->type == ACT_CA_SET) fputs(")", stdout); } + if(ct->type == ACT_CA_CRC) fputs(")", stdout); } break; case ACT_CA_AEX: |