27 lines
757 B
C
27 lines
757 B
C
/* spl_dumptree.c 可配置的树形打印模块(只用基本 ASCII)*/
|
|
|
|
#include "spl_dumptree.h"
|
|
#include <stdarg.h>
|
|
|
|
const spl_dumptree_style_t spl_dumptree_ascii_style = {
|
|
"| ",
|
|
"|-",
|
|
"`-",
|
|
" ",
|
|
};
|
|
|
|
void spl_dumptree_print(const spl_dumptree_style_t *st, const char *prefix, int is_last,
|
|
const char *fmt, ...) {
|
|
va_list ap;
|
|
printf("%s%s ", prefix, is_last ? st->last_branch : st->branch);
|
|
va_start(ap, fmt);
|
|
vprintf(fmt, ap);
|
|
va_end(ap);
|
|
printf("\n");
|
|
}
|
|
|
|
void spl_dumptree_child_prefix(const spl_dumptree_style_t *st, const char *prefix, int is_last,
|
|
char *out, size_t cap) {
|
|
snprintf(out, cap, "%s%s", prefix, is_last ? st->space : st->vertical);
|
|
}
|