summaryrefslogtreecommitdiffstats
path: root/src/datatype.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/datatype.c')
-rw-r--r--src/datatype.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/datatype.c b/src/datatype.c
index 3c17e929..2cb937f5 100644
--- a/src/datatype.c
+++ b/src/datatype.c
@@ -662,20 +662,23 @@ const struct datatype *concat_type_alloc(const struct expr *expr)
{
struct datatype *dtype;
struct expr *i;
- char desc[256] = "concatenation of ";
- unsigned int type = 0;
+ char desc[256] = "concatenation of (";
+ unsigned int type = 0, size = 0;
list_for_each_entry(i, &expr->expressions, list) {
- if (type != 0)
+ if (size != 0)
strncat(desc, ", ", sizeof(desc) - strlen(desc) - 1);
strncat(desc, i->dtype->desc, sizeof(desc) - strlen(desc) - 1);
type <<= 8;
type |= i->dtype->type;
+ size++;
}
+ strncat(desc, ")", sizeof(desc) - strlen(desc) - 1);
dtype = xzalloc(sizeof(*dtype));
dtype->type = type;
+ dtype->size = size;
dtype->desc = xstrdup(desc);
dtype->parse = concat_type_parse;