aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-09-05 10:38:50 +0000
committerLev Walkin <vlm@lionet.info>2004-09-05 10:38:50 +0000
commit0056aec2069e306d0909f169c4ca9558324db97f (patch)
tree596b5add0bfaa020a3ef68d0ffa81a428d7bb8f0
parent23b7c45e762dc82cd77e9bf99cf63457fa50e26a (diff)
better pretty-printing;
-rw-r--r--libasn1print/asn1print.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index a07a894c..e8281df6 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -100,9 +100,11 @@ asn1print_oid(asn1p_oid_t *oid, enum asn1print_flags flags) {
} 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 @@ asn1print_constraint(asn1p_constraint_t *ct, enum asn1print_flags flags) {
{
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 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
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);
+ }
}
/*