void add_bbsboard(const board_t *pbt) { struct boardheader newboard; char vbuf[PATHLEN], buf[PATHLEN]; int bid; if (!pbt) return; memset(&newboard, 0, sizeof(newboard)); strcpy(newboard.filename, pbt->name); strcpy(newboard.title, "0[待定] 版面中文名称待定"); if (getbid(newboard.filename, NULL) > 0) { clean_ipc(); error("%s: getbid error", newboard.filename); } strcpy(vbuf, "vote/"); strcat(vbuf, newboard.filename); setbpath(buf, newboard.filename); /* * keep old files. * f_rm(buf); * f_rm(vbuf); */ if (wrapped_mkdir(buf, 0755) == -1 || wrapped_mkdir(vbuf, 0755) == -1) { clean_ipc(); error("%s: mkdir error", newboard.filename); } snprintf(newboard.ann_path, 127, "%s/%s", groups[0], newboard.filename); newboard.ann_path[127] = '\0'; /* 默认权限 */ newboard.level = PERM_SYSOP; if (pbt->type == X) newboard.level |= PERM_POSTMASK; else if (pbt->type == o) newboard.level = 0; if (add_board(&newboard) == -1) { clean_ipc(); error("%s: add_board error", newboard.filename); } if ((bid = getbid(newboard.filename, NULL)) == 0) { clean_ipc(); error("%s: getbid error", newboard.filename); } sprintf(buf, "add board %s", newboard.filename); bbslog("user", "%s", buf); usage(buf); }
StarflowSetOfGames::StarflowSetOfGames() { add_board({ "A....", ".....", "..D..", "CDB.A", "B...C", }); add_board({ "R....B...B", "...W......", "..WG......", ".COb..O...", ".g....b.G.", "........S.", "..R..P...C", "YS.......", ".p....g.P.", ".Y..p.....", }); add_board({ "G........", "R.b....P.", "Y....B...", "...Y.....", "........G", ".OCp.B..P", ".......bO", "....C..p.", ".R.......", }); add_board({ "..PY...", ".....C.", ".C...G.", ".O.B.R.", "....B..", "..O..R.", "...PGY.", }); add_board({ "GB...R..", "...G.BC.", "O....P..", ".Y......", ".PO..R..", "......Y.", ".b..b.C.", "........", }); add_board({ ".....", ".A.D.", "..D..", "..B.C", "BAC..", }); add_board({ "ABC.DE", "....F.", "..C...", "..D...", "A.F...", "B.E...", }); add_board({ "A.B.C", "..D.E", ".....", ".B.C.", ".ADE.", }); add_board({ ".......b..", ".Y..PC..G.", "...BO.....", "..........", ".YP....O..", ".....G....", "..........", ".....B....", "..R.....C.", "R.......b.", }); add_board({ "......Y...", "....P.G.G.", "......RY..", "...b...B..", ".....O....", "C....RbC..", "P.........", "BO........", "..........", "..........", }); add_board({ "...........", "......Y.W.P", "......S.O..", ".SYC.......", "..g.....C..", ".g.........", ".O.......R.", ".B..P..W...", ".....B.p...", "R......G..p", "q.......q.G", }); add_board({ "P............", "R..C...WB..B.", ".P.R...G...W.", ".Y....G..S...", ".............", ".......SOg...", "......y.P....", "..........O..", ".....x....b..", "C.......P....", ".....y..g....", ".b.x.........", "............Y", }); add_board({ "..............", ".B...B........", "...........h..", "........M.....", ".p........Y...", "...Rh.g.......", "..C.C..R......", "Y......g...W..", "....W..O.B....", "....G..G.S....", "..PO..........", "....P.....B..x", "............p.", ".......S.Mx...", }); }
void register_board(dev_init_t * dev_info) { add_board(dev_info); }