summaryrefslogtreecommitdiff
path: root/src/ecbor_describe.c
diff options
context:
space:
mode:
authorrimio <vasi.vilvoiu@gmail.com>2018-03-01 21:51:15 +0200
committerrimio <vasi.vilvoiu@gmail.com>2018-03-01 21:51:15 +0200
commitffd6cf087b78beffd9cce75c4b197a9474c48504 (patch)
tree7ffab870776a58ef15e6da8e4dc78142c14f8800 /src/ecbor_describe.c
parentdd2de65b85cdc7a7744145214ecf8ea5ebe46c25 (diff)
Fixed printing of byte strings; fixed wrong type comparison on TAG
Diffstat (limited to 'src/ecbor_describe.c')
-rw-r--r--src/ecbor_describe.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/ecbor_describe.c b/src/ecbor_describe.c
index de1025c..bf1337b 100644
--- a/src/ecbor_describe.c
+++ b/src/ecbor_describe.c
@@ -128,7 +128,7 @@ print_ecbor_item (ecbor_item_t *item, unsigned int level, char *prefix)
} else {
printf ("'");
for (i = 0; i < len; i ++) {
- printf("%2x", val[i]);
+ printf("%02x", val[i]);
}
printf ("'\n");
}
@@ -154,7 +154,10 @@ print_ecbor_item (ecbor_item_t *item, unsigned int level, char *prefix)
return rc;
}
- print_ecbor_item (&child, level+1, "");
+ rc = print_ecbor_item (&child, level+1, "");
+ if (rc != ECBOR_OK) {
+ return rc;
+ }
}
}
break;
@@ -194,6 +197,30 @@ print_ecbor_item (ecbor_item_t *item, unsigned int level, char *prefix)
}
break;
+ case ECBOR_MT_TAG:
+ {
+ int64_t val;
+ ecbor_item_t child;
+
+ rc = ecbor_get_value (item, (void *) &val);
+ if (rc != ECBOR_OK) {
+ return rc;
+ }
+
+ printf ("[TAG] value %lld\n", (long long int)val);
+
+ rc = ecbor_get_tag_item (item, &child);
+ if (rc != ECBOR_OK) {
+ return rc;
+ }
+
+ rc = print_ecbor_item (&child, level+1, "");
+ if (rc != ECBOR_OK) {
+ return rc;
+ }
+ }
+ break;
+
default:
printf ("[UNKNOWN]\n");
break;