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);
|
||
}
|