aboutsummaryrefslogtreecommitdiff
path: root/src/meta.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/meta.c')
-rw-r--r--src/meta.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/meta.c b/src/meta.c
index 2cc263c..eac2d68 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -144,3 +144,22 @@ meta_free(struct metadef *def)
}
}
}
+
+struct metadef *
+metadef_join(struct metadef *a, struct metadef *b)
+{
+ struct metadef *np;
+ size_t i, j;
+
+ for (i = 0; a[i].kw; i++);
+ if (b)
+ for (j = 0; b[j].kw; j++);
+ else
+ j = 0;
+ np = grecs_malloc((i + j + 1) * sizeof(a[0]));
+ memcpy(np, a, i * sizeof(a[0]));
+ if (j > 0)
+ memcpy(np + i, b, j * sizeof(b[0]));
+ np[i + j].kw = NULL;
+ return np;
+}

Return to:

Send suggestions and report system problems to the System administrator.