diff options
Diffstat (limited to 'structures')
| -rw-r--r-- | structures/rope/rope.c | 17 | ||||
| -rw-r--r-- | structures/rope/rope.h | 1 | 
2 files changed, 18 insertions, 0 deletions
| 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 | 
