From a877aba402d5087d8fdb3a4e8ae7462656ca9589 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Thu, 31 Dec 2020 03:21:27 -0500 Subject: Add concat function for ropes --- structures/rope/rope.c | 17 +++++++++++++++++ structures/rope/rope.h | 1 + 2 files changed, 18 insertions(+) diff --git a/structures/rope/rope.c b/structures/rope/rope.c index f3828df..50c7fef 100644 --- a/structures/rope/rope.c +++ b/structures/rope/rope.c @@ -55,3 +55,20 @@ char *str; return tmp; } +rope* rope_concat(node1, node2) +rope *node1, *node2; +{ + rope *tmp; + + if (!node1 || !node2) + return node1 ? node1 : node2; + + tmp = rope_new(); + tmp->len = rope_len(node1); + tmp->left = node1; + tmp->right = node2; + node1->parent = tmp; + node2->parent = tmp; + + return tmp; +} diff --git a/structures/rope/rope.h b/structures/rope/rope.h index 80e60a3..f012cc1 100644 --- a/structures/rope/rope.h +++ b/structures/rope/rope.h @@ -5,5 +5,6 @@ typede struct rope_s rope; rope* rope_new(); rope* str_to_rope(char*); +rope* rope_concate(rope*, rope*); #endif -- cgit v1.1