SetupBBS 板


修改自hightman大之前寫的trandotbrd.c 適用於從Firebird的3.1-20020908的.BOARDS 轉換為MapleBBS-3.10-20031227 (itoc) 的.BRD 編譯的時候要蓋掉MapleBBS裡的src/util/tran/fb2dotbrd.c 原先想參照hightman大的寫法,但在做權限轉移的時候失敗了, 因此只好用土法煉鋼的方法‥ /*----------------------------------------------------------*/ /* util/fb/fb2dotbrd.c */ /*----------------------------------------------------------*/ /* target : firebird 3.0 轉 Maple 3.x .BRD */ /* .BOARDS => .BRD */ /* create : 00/11/22 */ /* update : / / */ /* */ /* author : [email protected] */ /* modify : [email protected] */ /*----------------------------------------------------------*/ /* syntax : fb2dotbrd */ /*----------------------------------------------------------*/ #include "fb.h" BRD allbrd[MAXBOARD]; typedef struct boardheader { /* This structure is used to hold data i n */ char filename[STRLEN+20]; /* the BOARDS files */ char BM[BM_LEN - 1]; char flag; char title[STRLEN]; unsigned level; unsigned char accessed[12]; } boardheader; typedef struct _PERM { int old; int new; } PERM; static PERM flag[] = { {0x8, BRD_ANONYMOUS}, {0x4, BRD_NOTRAN} }; int board_cmp(a, b) BRD *a, *b; { return (strcasecmp(a->brdname, b->brdname)); } main() { int inf, outf, i, count; int j; char buf[256], *str; char *bm; boardheader mybh; PERM *p; sprintf(buf, "%s/.BOARDS", FB); inf = open(buf, O_RDONLY); sprintf(buf, ".BRD"); outf = open(buf, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (inf == -1 || outf == -1) { printf("error open file\n"); exit(1); } /* read in all boards */ i = 0; memset(allbrd, 0, MAXBOARD * sizeof(BRD)); while (read(inf, &mybh, sizeof(mybh)) == sizeof(mybh)) { str = mybh.title; if (mybh.filename[0]) { strcpy(allbrd[i].brdname, mybh.filename); strncpy(allbrd[i].class,mybh.title+2,4); /* klt.040113:讀出類別 */ str+=11; sprintf(allbrd[i].title, "%s", str); if (mybh.BM[0] > ' ') { bm = mybh.BM; for (j = 0; bm[j] != '\0'; j++) if (bm[j] == ',') bm[j] = '/'; strcpy(allbrd[i].BM, bm); } for (p = flag; p->old; p++) { if (mybh.flag & p->old) { mybh.flag &= 0xe; /* klt.040113: 把VOTE_FLAG拿掉 */ allbrd[i].battr |= p->new; } } if (mybh.level & 0x080000) allbrd[i].battr |= BRD_NOZAP; /* klt.040113: 把NOZAP_FLAG加回去 */ if (!strcmp(mybh.filename, "Test") || !strcmp(mybh.filename, "test")) allbrd[i].battr |= BRD_NOCOUNT; if (!strcmp(mybh.filename, "Test") || !strcmp(mybh.filename, "test")) allbrd[i].battr |= BRD_NOSTAT; /* klt.040113: 用很爛的方法做權限轉移,本來想用hightman大的方法但失敗 */ mybh.level &= 0x004dff; if(mybh.level & 0x1) allbrd[i].readlevel |= PERM_BASIC; if(mybh.level & 0x2) allbrd[i].readlevel |= PERM_CHAT; if(mybh.level & 0x4) allbrd[i].readlevel |= PERM_PAGE; if(mybh.level & 0x8) allbrd[i].readlevel |= PERM_POST; if(mybh.level & 0x10) allbrd[i].readlevel |= PERM_VALID; if(mybh.level & 0x20) allbrd[i].readlevel |= PERM_DENYPOST; if(mybh.level & 0x40) allbrd[i].readlevel |= PERM_CLOAK; if(mybh.level & 0x80) allbrd[i].readlevel |= PERM_SEECLOAK; if(mybh.level & 0x100) allbrd[i].readlevel |= PERM_XEMPT; if(mybh.level & 0x400) allbrd[i].readlevel |= PERM_BM; if(mybh.level & 0x800) allbrd[i].readlevel |= PERM_ACCOUNTS; if(mybh.level & 0x4000) allbrd[i].readlevel |= PERM_SYSOP; allbrd[i].postlevel = allbrd[i].readlevel; i++; } } close(inf); /* sort them by name */ count = i; qsort(allbrd, count, sizeof(BRD), board_cmp); /* write out the target file */ printf("----------------------------------------------------------------------\n"); for(i = 0; i < count; i++) { write(outf, &allbrd[i], sizeof(BRD)); printf("%-13s%-5s%-25.25s%s\n", allbrd[i].brdname, allbrd[i].class,allbrd[i].BM, allbrd[i].title); /* 這一行很長要注意 */ } close(outf); exit(0); } -- -- 高科大資管明日資星 ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ infostar.twbbs.org ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ★ m145-185.dialup.seed.net.tw







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草
伺服器連線錯誤,造成您的不便還請多多包涵!
「贊助商連結」






like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP