char buf[] = "test\ntest1"; char buf1[] = "test\n#test1"; char buf2[] = "test\ntest1\ntest2"; struct sbuf *b = sbuf_new_auto(); merge_3way(buf, buf1, buf2, b); sbuf_finish(b); printf("Vanilla:\n---\n%s\n---\n", buf); printf("Modified:\n---\n%s\n---\n", buf1); printf("New:\n---\n%s\n---\n", buf2); printf("Result:\n---\n%s\n---\n", sbuf_data(b));