diff options
Diffstat (limited to 'util/showboard.c')
-rw-r--r-- | util/showboard.c | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/util/showboard.c b/util/showboard.c index 0b473569..77bde9f1 100644 --- a/util/showboard.c +++ b/util/showboard.c @@ -16,11 +16,11 @@ int main(argc, argv) int argc; char *argv[]; { - int inf, i, count; + int inf, i = 0, detail_i = 0, count; if (argc < 2) { - printf("Usage:\t%s .BRD [MAXUSERS]\n", argv[0]); + printf("Usage:\t%s .BRD [bid]\n", argv[0]); exit(1); } @@ -47,16 +47,58 @@ int main(argc, argv) /* sort them by name */ count = i; +#if 0 qsort(allbrd, count, sizeof(boardheader_t), board_cmp); +#endif /* write out the target file */ - printf( - "看板名稱 板主 類別 中文敘述\n" - "----------------------------------------------------------------------\n"); - for (i = 0; i < count; i++) + if (argc > 2) { - printf("%-13s%-25.25s%s\n", allbrd[i].brdname, allbrd[i].BM, allbrd[i].title); + detail_i = atoi(argv[2]); + if (detail_i >= count) + detail_i = -1; + } else { + detail_i = -1; + } + + if (detail_i < 0) { + printf( + " 看板名稱 板主 類別 中文敘述\n" + " -----------------------------------------------------------------\n"); + for (i = 0; i < count; i++) + { + printf("%4d %-13s%-25.25s%s\n", i, allbrd[i].brdname, allbrd[i].BM, allbrd[i].title); + } + } else { + /* print details */ + boardheader_t b = allbrd[detail_i]; + printf("brdname(bid):\t%s\n", b.brdname); + printf("title:\t%s\n", b.title); + printf("BM:\t%s\n", b.BM); + printf("brdattr:\t%08x\n", b.brdattr); + printf("post_limit_posts:\t%d\n", b.post_limit_posts); + printf("post_limit_logins:\t%d\n", b.post_limit_logins); + printf("post_limit_regtime:\t%d\n", b.post_limit_regtime); + printf("level:\t%d\n", b.level); + printf("gid:\t%d\n", b.gid); + printf("parent:\t%d\n", b.parent); + printf("childcount:\t%d\n", b.childcount); + printf("nuser:\t%d\n", b.nuser); + + printf("next[0]:\t%d\n", b.next[0]); + printf("next[1]:\t%d\n", b.next[1]); + printf("firstchild[0]:\t%d\n", b.firstchild[0]); + printf("firstchild[1]:\t%d\n", b.firstchild[1]); + /* traverse to find my children */ + printf("---- children: ---- \n"); + for (i = 0; i < count; i++) + { + if(allbrd[i].gid == detail_i) + printf("%4d %-13s%-25.25s%s\n", + i, allbrd[i].brdname, + allbrd[i].BM, allbrd[i].title); + } } return 0; } |