better pretty-printing;
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index a07a894..e8281df 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -100,9 +100,11 @@
} else if(ac) printf(" ");
if(oid->arcs[ac].name) {
- printf("%s(%d)",
- oid->arcs[ac].name,
- (int)oid->arcs[ac].number);
+ printf("%s", oid->arcs[ac].name);
+ if(oid->arcs[ac].number >= 0) {
+ printf("(%lld)",
+ (long long)oid->arcs[ac].number);
+ }
accum += strlen(oid->arcs[ac].name);
} else {
printf("%d",
@@ -289,7 +291,7 @@
{
char *symtable[] = { " EXCEPT ", " ^ ", " | ", ",",
"", "(" };
- int i;
+ unsigned int i;
for(i = 0; i < ct->el_count; i++) {
enum asn1print_flags nflags = flags;
if(i) fputs(symtable[symno], stdout);
@@ -562,13 +564,14 @@
if(tc->meta_type == AMT_VALUE
&& tc->expr_type != A1TC_EXTENSIBLE) {
- if(tc->expr_type == A1TC_UNIVERVAL)
+ if(tc->expr_type == A1TC_UNIVERVAL) {
printf("(");
- else
- printf(" ::= ");
- asn1print_value(tc->value, flags);
- if(tc->expr_type == A1TC_UNIVERVAL)
+ asn1print_value(tc->value, flags);
printf(")");
+ } else {
+ printf(" ::= ");
+ asn1print_value(tc->value, flags);
+ }
}
/*