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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP