diff options
author | wens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-12-03 09:08:29 +0800 |
---|---|---|
committer | wens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-12-03 09:08:29 +0800 |
commit | 3655862b3fa51afaf5c01a2cfea600169f3cd609 (patch) | |
tree | 7e8aa3d8e50b25920d421f62d59eae06837b26f6 /mbbsd | |
parent | 5cefa8237ce2a2c2ad86d956a086c386fb013364 (diff) | |
download | pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar.gz pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar.bz2 pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar.lz pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar.xz pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.tar.zst pttbbs-3655862b3fa51afaf5c01a2cfea600169f3cd609.zip |
changed money in fileheader_t into union
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2363 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/bbs.c | 33 | ||||
-rw-r--r-- | mbbsd/read.c | 9 | ||||
-rw-r--r-- | mbbsd/record.c | 11 | ||||
-rw-r--r-- | mbbsd/voteboard.c | 16 |
4 files changed, 37 insertions, 32 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 7396c22e..a3cec483 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -570,7 +570,7 @@ do_general(int isbid) if (unlikely(isbid)) { memset(&bidinfo,0,sizeof(bidinfo)); setupbidinfo(&bidinfo); - postfile.money=bidinfo.high; + postfile.multi.money=bidinfo.high; move(20,0); clrtobot(); } @@ -655,10 +655,10 @@ do_general(int isbid) aborted = (aborted > MAX_POST_MONEY * 2) ? MAX_POST_MONEY : aborted / 2; if(ifuseanony) { postfile.filemode |= FILE_ANONYMOUS; - postfile.money = currutmp->uid; + postfile.multi.anon_uid = currutmp->uid; } else if(!isbid) - postfile.money = aborted; + postfile.multi.money = aborted; strlcpy(postfile.owner, owner, sizeof(postfile.owner)); strlcpy(postfile.title, save_title, sizeof(postfile.title)); @@ -1727,9 +1727,9 @@ del_post(int ent, fileheader_t * fhdr, char *direct) bp = getbcache(currbid); if(fhdr->filemode & FILE_ANONYMOUS) - /* When the file is anonymous posted, fhdr->money is author. + /* When the file is anonymous posted, fhdr->multi.anon_uid is author. * see do_general() */ - tusernum = fhdr->money; + tusernum = fhdr->multi.anon_uid; else tusernum = searchuser(fhdr->owner); @@ -1797,18 +1797,18 @@ del_post(int ent, fileheader_t * fhdr, char *direct) #endif setbtotal(currbid); - if (fhdr->money < 0 || fhdr->filemode & FILE_ANONYMOUS) - fhdr->money = 0; + if (fhdr->multi.money < 0 || fhdr->filemode & FILE_ANONYMOUS) + fhdr->multi.money = 0; if (not_owned && strcmp(currboard, "Test")) { - deumoney(tusernum, -fhdr->money); + deumoney(tusernum, -fhdr->multi.money); } if (!not_owned && strcmp(currboard, "Test")) { if (cuser.numposts) cuser.numposts--; if (!(currmode & MODE_DIGEST && currmode & MODE_BOARD)){ - demoney(-fhdr->money); + demoney(-fhdr->multi.money); vmsg("您的文章減為 %d 篇,支付清潔費 %d 銀", - cuser.numposts, fhdr->money); + cuser.numposts, fhdr->multi.money); } } return DIRCHANGED; @@ -1834,12 +1834,12 @@ view_postmoney(int ent, fileheader_t * fhdr, char *direct) return FULLUPDATE; } if(fhdr->filemode & FILE_ANONYMOUS) - /* When the file is anonymous posted, fhdr->money is author. + /* When the file is anonymous posted, fhdr->multi.anon_uid is author. * see do_general() */ vmsg("匿名管理編號: %d (同一人號碼會一樣)", - fhdr->money + (int)currutmp->pid); + fhdr->multi.anon_uid + (int)currutmp->pid); else - vmsg("這一篇文章值 %d 銀", fhdr->money); + vmsg("這一篇文章值 %d 銀", fhdr->multi.money); return FULLUPDATE; } @@ -2177,7 +2177,8 @@ push_bottom(int ent, fileheader_t *fhdr, char *direct) vmsg("不得超過 5 篇重要公告 請精簡!"); return READ_REDRAW; } - fhdr->money = ent | FHR_REFERENCE; + fhdr->multi.refer.flag = 1; + fhdr->multi.refer.ref = ent; append_record(buf, fhdr, sizeof(fileheader_t)); } else{ @@ -2207,7 +2208,7 @@ good_post(int ent, fileheader_t * fhdr, char *direct) !strcmp(currboard, "Artdsn") || !strcmp(currboard, "PttLaw")) { deumoney(searchuser(fhdr->owner), -1000); if (!(currmode & MODE_SELECT)) - fhdr->money -= 1000; + fhdr->multi.money -= 1000; else delta = -1000; } @@ -2246,7 +2247,7 @@ good_post(int ent, fileheader_t * fhdr, char *direct) !strcmp(currboard, "Artdsn") || !strcmp(currboard, "PttLaw")) { deumoney(searchuser(fhdr->owner), 1000); if (!(currmode & MODE_SELECT)) - fhdr->money += 1000; + fhdr->multi.money += 1000; else delta = 1000; } diff --git a/mbbsd/read.c b/mbbsd/read.c index 1927d929..ebf632dd 100644 --- a/mbbsd/read.c +++ b/mbbsd/read.c @@ -440,7 +440,10 @@ select_read(keeploc_t * locmem, int sr_mode) continue; ++count; if(p == NULL) - fhs[i].money = reference | FHR_REFERENCE; + { + fhs[i].multi.refer.flag = 1; + fhs[i].multi.refer.ref = reference; + } write(fd, &fhs[i], sizeof(fileheader_t)); } } // end while @@ -498,7 +501,7 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem, board_select(); setbdir(genbuf, currboard); locmem = getkeep(genbuf, 0, 1); - locmem->crs_ln = fhdr->money & ~FHR_REFERENCE; + locmem->crs_ln = fhdr->multi.refer.ref; num = locmem->crs_ln - p_lines + 1; locmem->top_ln = num < 1 ? 1 : num; mode = NEWDIRECT; @@ -649,7 +652,7 @@ i_read_key(const onekey_t * rcmdlist, keeploc_t * locmem, /* rocker.011112: 解決再select mode標記文章的問題 */ if (Tagger(atoi(headers[locmem->crs_ln - locmem->top_ln].filename + 2), (currmode & MODE_SELECT) ? - (headers[locmem->crs_ln - locmem->top_ln].money & ~FHR_REFERENCE) : + (headers[locmem->crs_ln - locmem->top_ln].multi.refer.ref) : locmem->crs_ln, TAG_TOGGLE)) locmem->crs_ln = locmem->crs_ln + 1; mode = PART_REDRAW; diff --git a/mbbsd/record.c b/mbbsd/record.c index 1ff65353..110ddd41 100644 --- a/mbbsd/record.c +++ b/mbbsd/record.c @@ -136,8 +136,8 @@ substitute_ref_record(char *direct, fileheader_t * fhdr, int ent) int num = 0; /* rocker.011018: 串接模式用reference增進效率 */ - if (!(fhdr->filemode & FILE_BOTTOM) && (fhdr->money & FHR_REFERENCE) && - (num = fhdr->money & ~FHR_REFERENCE)){ + if (!(fhdr->filemode & FILE_BOTTOM) && (fhdr->multi.refer.flag) && + (num = fhdr->multi.refer.ref)){ setdirpath(genbuf, direct, ".DIR"); get_record(genbuf, &hdr, sizeof(hdr), num); if (strcmp(hdr.filename, fhdr->filename)) { @@ -146,10 +146,11 @@ substitute_ref_record(char *direct, fileheader_t * fhdr, int ent) } } else if(num>0) { - fhdr->money = hdr.money; + fhdr->multi.money = hdr.multi.money; substitute_record(genbuf, fhdr, sizeof(*fhdr), num); } - fhdr->money = FHR_REFERENCE | num ; // Ptt: update now! + fhdr->multi.refer.flag = 1; + fhdr->multi.refer.ref = num; // Ptt: update now! } substitute_record(direct, fhdr, sizeof(*fhdr), ent); return num; @@ -175,7 +176,7 @@ getindex(char *direct, fileheader_t *fh_o, int end) else if(s == stamp) { close(fd); - fh_o->money = fh.money; + fh_o->multi.money = fh.multi.money; return i; } else begin = i; diff --git a/mbbsd/voteboard.c b/mbbsd/voteboard.c index 899885bd..5cfa3983 100644 --- a/mbbsd/voteboard.c +++ b/mbbsd/voteboard.c @@ -16,21 +16,21 @@ do_votelimitedit(int ent, fileheader_t * fhdr, char *direct) return DONOTHING; getdata(23, 0, "更改 (A)本篇 (B)本版預設連署限制 (C)取消?[C]", genbuf, 3, LCECHO); if (genbuf[0] == 'a' || genbuf[0] == 'A') { - sprintf(genbuf, "%u", ((fhdr->money >> 8) & 0xFF) * 10); + sprintf(genbuf, "%u", (unsigned int)(fhdr->multi.vote_limits.logins) * 10); do { getdata_buf(23, 0, "上站次數下限 (0~2550):", genbuf, 5, LCECHO); temp = atoi(genbuf); } while (temp < 0 || temp > 2550); temp /= 10; - fhdr->money = (fhdr->money & ~(0xFF00)) | (temp << 8); + fhdr->multi.vote_limits.logins = (unsigned char)temp; - sprintf(genbuf, "%u", (fhdr->money & 0xFF) * 10); + sprintf(genbuf, "%u", (unsigned int)(fhdr->multi.vote_limits.posts) * 10); do { getdata_buf(23, 0, "文章篇數下限 (0~2550):", genbuf, 5, LCECHO); temp = atoi(genbuf); } while (temp < 0 || temp > 2550); temp /= 10; - fhdr->money = (fhdr->money & ~(0xFF)) | temp; + fhdr->multi.vote_limits.posts = (unsigned char)temp; substitute_ref_record(direct, fhdr, ent); vmsg("修改完成!"); return FULLUPDATE; @@ -80,8 +80,8 @@ do_voteboardreply(fileheader_t * fhdr) vmsg("對不起,您目前無法在此發表文章!"); return; } - len = fhdr->money; - if ( cuser.numlogins < (((len >> 8) & 0xFF) * 10) || cuser.numposts < ((len & 0xFF) * 10) ) { + if ( cuser.numlogins < ((unsigned int)(fhdr->multi.vote_limits.logins) * 10) || + cuser.numposts < ((unsigned int)(fhdr->multi.vote_limits.posts) * 10) ) { move(5, 10); vmsg("你的上站數/文章數不足喔!"); return; @@ -395,8 +395,8 @@ do_voteboard(int type) temp = getbnum(currboard); /* use lower 16 bits of 'money' to store limits */ /* lower 8 bits are posts, higher 8 bits are logins */ - votefile.money = ( ((unsigned int)(bcache[temp - 1].limit_logins) << 8) | - (unsigned int)(bcache[temp - 1].limit_posts) ); + votefile.multi.vote_limits.logins = (unsigned int)bcache[temp - 1].limit_logins; + votefile.multi.vote_limits.posts = (unsigned int)bcache[temp - 1].limit_posts; setbdir(genbuf, currboard); if (append_record(genbuf, &votefile, sizeof(votefile)) != -1) setbtotal(currbid); |