diff --git a/main.c b/main.c index c277c1b..a5d69cf 100644 --- a/main.c +++ b/main.c @@ -133,6 +133,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags) for (size_t i = 0; i < print_left; i++) { + if (flags & CVEC_PRINT_FLAG_MULTILINE) + printf("\t"); + print_func(vec.elem_storage + elems_printed * vec.elem_size); printf("%c ", sep); elems_printed++; @@ -140,10 +143,13 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags) if (flags & CVEC_PRINT_FLAG_ELLIPSIS) { + if (flags & CVEC_PRINT_FLAG_MULTILINE) + printf("\n"); + printf("... %lu elements in between ... ", print_center); if (flags & CVEC_PRINT_FLAG_MULTILINE) - printf("\n"); + printf("\n\n"); elems_printed += print_center; } @@ -151,6 +157,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags) { for (size_t i = 0; i < print_center; i++) { + if (flags & CVEC_PRINT_FLAG_MULTILINE) + printf("\t"); + print_func(vec.elem_storage + elems_printed * vec.elem_size); if (elems_printed != vec.elem_count - 1) @@ -162,6 +171,9 @@ void cvec_print(cvec vec, cvec_print_func print_func, cvec_print_flag flags) for (size_t i = 0; i < print_right; i++) { + if (flags & CVEC_PRINT_FLAG_MULTILINE) + printf("\t"); + print_func(vec.elem_storage + elems_printed * vec.elem_size); if (elems_printed != vec.elem_count - 1) @@ -235,6 +247,13 @@ int main() return ret; } + int elem = 0; + ret = cvec_get(&elem, vec, 10); + if (ret < 0) + return ret; + + printf("Got 10th element: %d\n", elem); + cvec_print(vec, cvec_int_print_func, CVEC_PRINT_FLAG_ELLIPSIS | CVEC_PRINT_FLAG_MULTILINE); cvec_pop(&vec);