aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1print
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-03-18 03:53:05 +0000
committerLev Walkin <vlm@lionet.info>2005-03-18 03:53:05 +0000
commitd6db8028e73be25e7fb684e1d3060c3fdf1ec011 (patch)
tree61f600aff6ddf0e8cfccffc151ab5ab80aa92700 /libasn1print
parentd7f237b856514230b72706976d1f564c91f3d313 (diff)
better OID printing
Diffstat (limited to 'libasn1print')
-rw-r--r--libasn1print/asn1print.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c
index 43a3a0d6..abef0b5e 100644
--- a/libasn1print/asn1print.c
+++ b/libasn1print/asn1print.c
@@ -18,7 +18,7 @@
} while(0)
static int asn1print_module(asn1p_t *asn, asn1p_module_t *mod, enum asn1print_flags flags);
-static int asn1print_oid(asn1p_oid_t *oid, enum asn1print_flags flags);
+static int asn1print_oid(int prior_len, asn1p_oid_t *oid, enum asn1print_flags flags);
static int asn1print_ref(asn1p_ref_t *ref, enum asn1print_flags flags);
static int asn1print_tag(asn1p_expr_t *tc, enum asn1print_flags flags);
static int asn1print_params(asn1p_paramlist_t *pl,enum asn1print_flags flags);
@@ -67,7 +67,7 @@ asn1print_module(asn1p_t *asn, asn1p_module_t *mod, enum asn1print_flags flags)
printf("%s ", mod->Identifier);
if(mod->module_oid) {
- asn1print_oid(mod->module_oid, flags);
+ asn1print_oid(strlen(mod->Identifier), mod->module_oid, flags);
printf("\n");
}
@@ -116,8 +116,8 @@ asn1print_module(asn1p_t *asn, asn1p_module_t *mod, enum asn1print_flags flags)
}
static int
-asn1print_oid(asn1p_oid_t *oid, enum asn1print_flags flags) {
- size_t accum = 0;
+asn1print_oid(int prior_len, asn1p_oid_t *oid, enum asn1print_flags flags) {
+ size_t accum = prior_len;
int ac;
(void)flags; /* Unused argument */
@@ -126,23 +126,22 @@ asn1print_oid(asn1p_oid_t *oid, enum asn1print_flags flags) {
for(ac = 0; ac < oid->arcs_count; ac++) {
const char *arcname = oid->arcs[ac].name;
- if(accum + strlen(arcname ? arcname : "") > 50) {
+ if(accum + strlen(arcname ? arcname : "") > 75) {
printf("\n\t");
accum = 0;
- } else if(ac) {
- printf(" ");
+ } else {
+ accum += printf(" ");
}
if(arcname) {
- printf("%s", arcname);
+ accum += printf("%s", arcname);
if(oid->arcs[ac].number >= 0) {
- printf("(%" PRIdASN ")", oid->arcs[ac].number);
+ accum += printf("(%" PRIdASN ")",
+ oid->arcs[ac].number);
}
- accum += strlen(oid->arcs[ac].name);
} else {
- printf("%" PRIdASN, oid->arcs[ac].number);
+ accum += printf("%" PRIdASN, oid->arcs[ac].number);
}
- accum += 4;
}
printf(" }");