ObjectSets
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 4cab16b..47cfb1f 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -259,6 +259,8 @@
}
case ATV_REFERENCED:
return asn1print_ref(val->value.reference, flags);
+ case ATV_VALUESET:
+ return asn1print_constraint(val->value.constraint, flags);
case ATV_CHOICE_IDENTIFIER:
printf("%s: ", val->value.choice_identifier.identifier);
return asn1print_value(val->value.choice_identifier.value, flags);
@@ -280,7 +282,7 @@
switch(ct->type) {
case ACT_EL_TYPE:
- asn1print_value(ct->value, flags);
+ asn1print_value(ct->containedSubtype, flags);
break;
case ACT_EL_VALUE:
asn1print_value(ct->value, flags);
@@ -583,6 +585,8 @@
}
printf(" OF");
break;
+ case A1TC_VALUESET:
+ break;
default:
{
char *p = ASN_EXPR_TYPE2STR(tc->expr_type);
@@ -599,7 +603,7 @@
asn1print_ref(tc->reference, flags);
}
- if(tc->meta_type == AMT_VALUESET)
+ if(tc->meta_type == AMT_VALUESET && level == 0)
printf(" ::=");
/*